Класс FloatBuffer
- Все реализованные интерфейсы:
Comparable<FloatBuffer>
public abstract class FloatBuffer extends Buffer implements Comparable<FloatBuffer>
Этот класс определяет четыре категории операций с буферами типа float:
Абсолютные и относительные методы
getиputдля чтения и записи отдельных значений типа float;Абсолютные и относительные методы
bulk getдля передачи непрерывных последовательностей значений типа float из этого буфера в массив; иАбсолютные и относительные методы
bulk putдля передачи непрерывных последовательностей значений типа float из массива типа float {#if[char]?, строки,} или другого буфера типа float в этот буфер;{#if[!byte]? и}Метод для
compactingбуфера типа float.
Буферы типа float могут быть созданы либо с помощью allocation, который выделяет память для содержимого буфера, либо с помощью wrapping существующего массива типа float {#if[char]?или строки} в буфер, или путем создания представления существующего буфера типа byte.
Как и буфер типа byte, буфер типа float может быть прямым или непрямым. Буфер типа float, созданный с помощью методов этого класса, будет непрямым. Буфер типа float, созданный как представление буфера типа byte, будет прямым, если и только если сам буфер типа byte является прямым. Прямой ли буфер типа float или нет, можно определить, вызвав метод isDirect.
Методы в этом классе, которые не возвращают значение, возвращают буфер, на котором они вызваны. Это позволяет цеплять вызовы методов.
- С момента:
- 1.4
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static FloatBuffer |
allocate |
Выделяет новый буфер типа float. |
final float[] |
array() |
Возвращает массив типа float, который поддерживает этот буфер (необязательная операция). |
final int |
arrayOffset() |
Возвращает смещение в поддерживающем массиве этого буфера первого элемента буфера (необязательная операция). |
abstract FloatBuffer |
asReadOnlyBuffer() |
Создает новый, только для чтения буфер типа float, который разделяет содержимое этого буфера. |
final FloatBuffer |
clear() |
Очищает этот буфер. |
abstract FloatBuffer |
compact() |
Компактует этот буфер (необязательная операция). |
int |
compareTo |
Сравнивает этот буфер с другим. |
abstract FloatBuffer |
duplicate() |
Создает новый буфер типа float, который разделяет содержимое этого буфера. |
boolean |
equals |
Определяет, равен ли этот буфер другому объекту. |
final FloatBuffer |
flip() |
Переворачивает этот буфер. |
abstract float |
get() |
Относительный метод get. |
FloatBuffer |
get |
Относительный метод get для блочных данных. |
FloatBuffer |
get |
Относительный метод get для блочных данных. |
abstract float |
get |
Абсолютный метод get. |
FloatBuffer |
get |
Абсолютный метод get для блочных данных. |
FloatBuffer |
get |
Абсолютный метод get для блочных данных. |
final boolean |
hasArray() |
Определяет, поддерживается ли этот буфер доступным массивом типа float. |
int |
hashCode() |
Возвращает текущий хэш-код этого буфера. |
abstract boolean |
isDirect() |
Определяет, является ли этот буфер типа float прямым. |
final FloatBuffer |
limit |
Устанавливает предел этого буфера. |
final FloatBuffer |
mark() |
Устанавливает метку этого буфера в его позиции. |
int |
mismatch |
Находит и возвращает относительный индекс первого несовпадения между этим буфером и заданным буфером. |
abstract ByteOrder |
order() |
Получает порядок байтов этого буфера. |
final FloatBuffer |
position |
Устанавливает позицию этого буфера. |
abstract FloatBuffer |
put |
Относительный метод put (необязательная операция). |
final FloatBuffer |
put |
Относительный метод put для блочных данных (необязательная операция). |
FloatBuffer |
put |
Относительный метод put для блочных данных (необязательная операция). |
abstract FloatBuffer |
put |
Абсолютный метод put (необязательная операция). |
FloatBuffer |
put |
Абсолютный метод put для блочных данных (необязательная операция). |
FloatBuffer |
put |
Абсолютный метод put для блочных данных (необязательная операция). |
FloatBuffer |
put |
Абсолютный метод put для блочных данных (необязательная операция). |
FloatBuffer |
put |
Относительный метод put для блочных данных (необязательная операция). |
final FloatBuffer |
reset() |
Возвращает позицию буфера к ранее помеченной позиции. |
final FloatBuffer |
rewind() |
Перематывает этот буфер. |
abstract FloatBuffer |
slice() |
Создает новый буфер типа float, содержащий совместно используемую подпоследовательность содержимого этого буфера. |
abstract FloatBuffer |
slice |
Создает новый буфер типа float, содержащий совместно используемую подпоследовательность содержимого этого буфера. |
String |
toString() |
Возвращает строку, обобщающую состояние этого буфера. |
static FloatBuffer |
wrap |
Оборачивает массив типа float в буфер. |
static FloatBuffer |
wrap |
Оборачивает массив типа float в буфер. |
Методы, объявленные в классе java.nio.Buffer
capacity, hasRemaining, isReadOnly, limit, position, remaining
Подробное описание методов
allocate
public static FloatBuffer allocate(int capacity)
Позиция нового буфера будет равна нулю, его предел — его емкости, отметка — неопределенной, каждый из его элементов будет инициализирован нулём, а порядок байтов — native order базового оборудования. Он будет иметь backing array, а его array offset — ноль.
- Параметры:
-
capacity- ёмкость нового буфера в числах с плавающей точкой - Возвращает:
- Новый буфер с плавающей точкой
- Исключение:
-
IllegalArgumentException- Еслиcapacity— отрицательное целое число
wrap
public static FloatBuffer wrap(float[] array, int offset, int length)
Новый буфер будет поддерживаться заданным массивом чисел с плавающей точкой; то есть, изменения в буфере приведут к изменению массива и наоборот. Ёмкость нового буфера будет array.length, его позиция — offset, предел — offset + length, отметка — неопределённой, а порядок байтов — native order базового оборудования. Его backing array будет заданным массивом, а его array offset — нулём.
- Параметры:
-
array- Массив, который будет поддерживать новый буфер -
offset- Смещение подмассива, который будет использоваться; должно быть неотрицательным и не большеarray.length. Позиция нового буфера будет установлена в это значение. -
length- Длина подмассива, который будет использоваться; должно быть неотрицательным и не большеarray.length - offset. Предел нового буфера будет установлен вoffset + length. - Возвращает:
- Новый буфер с плавающей точкой
- Исключение:
-
IndexOutOfBoundsException- Если условия наoffsetиlengthпараметры не выполняются
wrap
public static FloatBuffer wrap(float[] array)
Новый буфер будет поддерживаться заданным массивом чисел с плавающей точкой; то есть, изменения в буфере приведут к изменению массива и наоборот. Ёмкость и предел нового буфера будут array.length, его позиция — ноль, отметка — неопределённой, а порядок байтов — native order базового оборудования. Его backing array будет заданным массивом, а его array offset — нулём.
- Параметры:
-
array- Массив, который будет поддерживать этот буфер - Возвращает:
- Новый буфер с плавающей точкой
slice
public abstract FloatBuffer slice()
Содержимое нового буфера начнётся с текущей позиции этого буфера. Изменения в содержимом этого буфера будут видны в новом буфере, и наоборот; значения позиции, предела и отметки двух буферов будут независимы.
Позиция нового буфера будет равна нулю, его ёмкость и предел будут равны числу чисел с плавающей точкой, оставшихся в этом буфере, его отметка будет неопределённой, а порядок байтов — таким же, как у этого буфера. Новый буфер будет прямым тогда и только тогда, когда этот буфер является прямым, и он будет только для чтения, тогда и только тогда, когда этот буфер является только для чтения.
- Указано в:
-
sliceв классеBuffer - Возвращает:
- Новый буфер с плавающей точкой
slice
public abstract FloatBuffer slice(int index, int length)
Содержимое нового буфера начнётся с позиции index в этом буфере и будет содержать length элементов. Изменения в содержимом этого буфера будут видны в новом буфере, и наоборот; значения позиции, предела и отметки двух буферов будут независимы.
Позиция нового буфера будет равна нулю, его ёмкость и предел будут length, его отметка будет неопределённой, а порядок байтов — таким же, как у этого буфера. Новый буфер будет прямым тогда и только тогда, когда этот буфер является прямым, и он будет только для чтения, тогда и только тогда, когда этот буфер является только для чтения.
- Указано в:
-
sliceв классеBuffer - Параметры:
-
index- Позиция в этом буфере, в которой начнётся содержимое нового буфера; должна быть неотрицательной и не большеlimit() -
length- Количество элементов, которые будет содержать новый буфер; должно быть неотрицательным и не большеlimit() - index - Возвращает:
- Новый буфер
- Исключение:
-
IndexOutOfBoundsException- Еслиindexотрицательно или большеlimit(),lengthотрицательно илиlength > limit() - index - С:
- 13
duplicate
public abstract FloatBuffer duplicate()
Содержимое нового буфера будет таким же, как у этого буфера. Изменения в содержимом этого буфера будут видны в новом буфере, и наоборот; значения позиции, предела и отметки двух буферов будут независимы.
Ёмкость, предел, позиция, отметка и порядок байтов нового буфера будут идентичны этим у этого буфера. Новый буфер будет прямым тогда и только тогда, когда этот буфер является прямым, и он будет только для чтения, тогда и только тогда, когда этот буфер является только для чтения.
- Указано в:
-
duplicateв классеBuffer - Возвращает:
- Новый буфер с плавающей точкой
asReadOnlyBuffer
public abstract FloatBuffer asReadOnlyBuffer()
Содержимое нового буфера будет таким же, как у этого буфера. Изменения в содержимом этого буфера будут видны в новом буфере; однако сам новый буфер будет только для чтения и не позволит изменять общее содержимое. Значения позиции, предела и отметки двух буферов будут независимы.
Ёмкость, предел, позиция, отметка и порядок байтов нового буфера будут идентичны этим у этого буфера.
Если этот буфер сам по себе является только для чтения, то этот метод ведёт себя точно так же, как метод duplicate.
- Возвращает:
- Новый буфер с плавающей точкой, только для чтения
get
public abstract float get()
- Возвращает:
- Число с плавающей точкой в текущей позиции буфера
- Исключение:
-
BufferUnderflowException- Если текущая позиция буфера не меньше его предела
put
public abstract FloatBuffer put(float f)
Записывает заданное число с плавающей точкой в этот буфер в текущей позиции и затем увеличивает позицию.
- Параметры:
-
f- Число с плавающей точкой, которое нужно записать - Возвращает:
- Этот буфер
- Исключение:
-
BufferOverflowException- Если текущая позиция этого буфера не меньше его предела -
ReadOnlyBufferException- Если этот буфер только для чтения
get
public abstract float get(int index)
- Параметры:
-
index- Индекс, с которого будет считываться число с плавающей точкой - Возвращает:
- Число с плавающей точкой по заданному индексу
- Исключение:
-
IndexOutOfBoundsException- Еслиindexотрицательно или не меньше предела буфера
put
public abstract FloatBuffer put(int index, float f)
Записывает заданное число с плавающей точкой в этот буфер по заданному индексу.
- Параметры:
-
index- Индекс, в который будет записано число с плавающей точкой -
f- Значение числа с плавающей точкой, которое нужно записать - Возвращает:
- Этот буфер
- Исключение:
-
IndexOutOfBoundsException- Еслиindexотрицательно или не меньше предела буфера -
ReadOnlyBufferException- Если этот буфер только для чтения
get
public FloatBuffer get(float[] dst, int offset, int length)
Этот метод переносит числа с плавающей точкой из этого буфера в заданный массив назначения. Если в буфере осталось меньше чисел с плавающей точкой, чем требуется для удовлетворения запроса, то есть, если length > remaining(), то числа с плавающей точкой не передаются, и выбрасывается BufferUnderflowException.
В противном случае этот метод копирует length чисел с плавающей точкой из этого буфера в заданный массив, начиная с текущей позиции этого буфера и заданного смещения в массиве. Позиция этого буфера затем увеличивается на length.
Другими словами, вызов этого метода в виде src.get(dst, off, len) имеет точно такой же эффект, как цикл
for (int i = off; i < off + len; i++)
dst[i] = src.get();
за исключением того, что он сначала проверяет, достаточно ли чисел с плавающей точкой в этом буфере, и он потенциально намного эффективнее.- Параметры:
-
dst- Массив, в который будут записаны числа с плавающей точкой -
offset- Смещение в массиве первого числа с плавающей точкой, которое будет записано; должно быть неотрицательным и не большеdst.length -
length- Максимальное количество чисел с плавающей точкой, которое будет записано в заданный массив; должно быть неотрицательным и не большеdst.length - offset - Возвращает:
- Этот буфер
- Исключение:
-
BufferUnderflowException- Если в этом буфере осталось меньшеlengthчисел с плавающей точкой -
IndexOutOfBoundsException- Если условия наoffsetиlengthпараметры не выполняются
get
public FloatBuffer get(float[] dst)
Этот метод переносит числа с плавающей запятой из этого буфера в заданный массив назначения. Вызов этого метода в форме src.get(a) ведет себя точно так же, как вызов
src.get(a, 0, a.length)
- Параметры:
-
dst- Массив назначения - Возвращает:
- Этот буфер
- Исключения:
-
BufferUnderflowException- Если в этом буфере осталось меньше, чемlengthчисел с плавающей запятой
get
public FloatBuffer get(int index, float[] dst, int offset, int length)
Этот метод переносит length чисел с плавающей запятой из этого буфера в заданный массив, начиная с заданного индекса в этом буфере и с заданного смещения в массиве. Позиция этого буфера не изменяется.
Вызов этого метода в форме src.get(index, dst, offset, length) имеет точно такой же эффект, как следующий цикл, за исключением того, что он сначала проверяет согласованность переданных параметров и потенциально является гораздо более эффективным:
for (int i = offset, j = index; i < offset + length; i++, j++)
dst[i] = src.get(j);
- Параметры:
-
index- Индекс в этом буфере, с которого будет считано первое число с плавающей запятой; должен быть неотрицательным и меньше, чемlimit() -
dst- Массив назначения -
offset- Смещение внутри массива первого числа с плавающей запятой, которое будет записано; должно быть неотрицательным и меньше, чемdst.length -
length- Количество чисел с плавающей запятой, которые должны быть записаны в заданный массив; должно быть неотрицательным и не превышать меньшего изlimit() - indexиdst.length - offset - Возвращает:
- Этот буфер
- Исключения:
-
IndexOutOfBoundsException- Если условия наindex,offset, иlengthпараметры не выполняются - С:
- 13
get
public FloatBuffer get(int index, float[] dst)
Этот метод переносит числа с плавающей запятой из этого буфера в заданный массив назначения. Позиция этого буфера не изменяется. Вызов этого метода в форме src.get(index, dst) ведет себя точно так же, как вызов:
src.get(index, dst, 0, dst.length)
- Параметры:
-
index- Индекс в этом буфере, с которого будет считано первое число с плавающей запятой; должен быть неотрицательным и меньше, чемlimit() -
dst- Массив назначения - Возвращает:
- Этот буфер
- Исключения:
-
IndexOutOfBoundsException- Еслиindexотрицателен, не меньше, чемlimit(), илиlimit() - index < dst.length - С:
- 13
put
public FloatBuffer put(FloatBuffer src)
Этот метод переносит оставшиеся числа с плавающей запятой из данного буфера источника в этот буфер. Если оставшихся чисел с плавающей запятой в буфере источника больше, чем в этом буфере, то есть если src.remaining() > remaining(), то числа с плавающей запятой не переносятся и выбрасывается исключение BufferOverflowException.
В противном случае этот метод копирует n = src.remaining() чисел с плавающей запятой из данного буфера в этот буфер, начиная с текущей позиции каждого буфера. Позиции обоих буферов затем увеличиваются на n.
Другими словами, вызов этого метода в форме dst.put(src) имеет точно такой же эффект, как цикл
while (src.hasRemaining())
dst.put(src.get()); за исключением того, что он сначала проверяет, достаточно ли места в этом буфере, и потенциально является гораздо более эффективным. Если этот буфер и буфер источника используют один и тот же базовый массив или память, то результат будет таким, как если бы элементы источника сначала были скопированы в промежуточное местоположение перед записью в этот буфер.- Параметры:
-
src- Буфер источника, из которого должны быть считаны числа с плавающей запятой; не должен быть этим буфером - Возвращает:
- Этот буфер
- Исключения:
-
BufferOverflowException- Если в этом буфере недостаточно места для оставшихся чисел с плавающей запятой в буфере источника -
IllegalArgumentException- Если буфер источника является этим буфером -
ReadOnlyBufferException- Если этот буфер только для чтения
put
public FloatBuffer put(int index, FloatBuffer src, int offset, int length)
Этот метод переносит length чисел с плавающей запятой в этот буфер из данного буфера источника, начиная с заданного offset в буфере источника и заданного index в этом буфере. Позиции обоих буферов не изменяются.
Другими словами, вызов этого метода в форме dst.put(index, src, offset, length) имеет точно такой же эффект, как цикл
for (int i = offset, j = index; i < offset + length; i++, j++)
dst.put(j, src.get(i));
за исключением того, что он сначала проверяет согласованность переданных параметров и потенциально является гораздо более эффективным. Если этот буфер и буфер источника используют один и тот же базовый массив или память, то результат будет таким, как если бы элементы источника сначала были скопированы в промежуточное местоположение перед записью в этот буфер.- Параметры:
-
index- Индекс в этом буфере, в котором будет записано первое число с плавающей запятой; должен быть неотрицательным и меньше, чемlimit() -
src- Буфер, из которого должны быть считаны числа с плавающей запятой -
offset- Индекс в буфере источника первого числа с плавающей запятой, которое должно быть считано; должен быть неотрицательным и меньше, чемsrc.limit() -
length- Количество чисел с плавающей запятой, которые должны быть считаны из данного буфера; должно быть неотрицательным и не превышать меньшего изlimit() - indexиsrc.limit() - offset - Возвращает:
- Этот буфер
- Исключения:
-
IndexOutOfBoundsException- Если условия наindex,offset, иlengthпараметры не выполняются -
ReadOnlyBufferException- Если этот буфер только для чтения - С:
- 16
put
public FloatBuffer put(float[] src, int offset, int length)
Этот метод переносит числа с плавающей запятой в этот буфер из заданного массива источника. Если чисел с плавающей запятой, которые должны быть скопированы из массива, больше, чем остаётся в этом буфере, то есть если length > remaining(), то числа с плавающей запятой не переносятся и выбрасывается исключение BufferOverflowException.
В противном случае этот метод копирует length чисел с плавающей запятой из заданного массива в этот буфер, начиная с заданного смещения в массиве и в текущей позиции этого буфера. Позиция этого буфера затем увеличивается на length.
Другими словами, вызов этого метода в форме dst.put(src, off, len) имеет точно такой же эффект, как цикл
for (int i = off; i < off + len; i++)
dst.put(src[i]);
за исключением того, что он сначала проверяет, достаточно ли места в этом буфере.- Параметры:
-
src- Массив, из которого должны быть считаны числа с плавающей запятой -
offset- Смещение внутри массива первого числа с плавающей запятой, которое должно быть считано; должно быть неотрицательным и не больше, чемsrc.length -
length- Количество чисел с плавающей запятой, которое должно быть считано из заданного массива; должно быть неотрицательным и не больше, чемsrc.length - offset - Возвращает:
- Этот буфер
- Исключения:
-
BufferOverflowException- Если в этом буфере недостаточно места -
IndexOutOfBoundsException- Если условия наoffsetиlengthпараметры не выполняются -
ReadOnlyBufferException- Если этот буфер только для чтения
put
public final FloatBuffer put(float[] src)
Этот метод переносит всё содержимое заданного массива чисел с плавающей запятой в этот буфер. Вызов этого метода в форме dst.put(a) ведет себя точно так же, как вызов
dst.put(a, 0, a.length)
- Параметры:
-
src- Массив источника - Возвращает:
- Этот буфер
- Исключения:
-
BufferOverflowException- Если в этом буфере недостаточно места -
ReadOnlyBufferException- Если этот буфер только для чтения
put
public FloatBuffer put(int index, float[] src, int offset, int length)
Этот метод переносит length чисел с плавающей запятой из заданного массива, начиная с заданного смещения в массиве и в заданном индексе в этом буфере. Позиция этого буфера не изменяется.
Вызов этого метода в форме dst.put(index, src, offset, length) имеет точно такой же эффект, как следующий цикл, за исключением того, что он сначала проверяет согласованность переданных параметров и потенциально является гораздо более эффективным:
for (int i = offset, j = index; i < offset + length; i++, j++)
dst.put(j, src[i]);
- Параметры:
-
index- Индекс в этом буфере, в котором будет записано первое число с плавающей запятой; должен быть неотрицательным и меньше, чемlimit() -
src- Массив, из которого должны быть считаны числа с плавающей запятой -
offset- Смещение внутри массива первого числа с плавающей запятой, которое должно быть считано; должно быть неотрицательным и меньше, чемsrc.length -
length- Количество чисел с плавающей запятой, которое должно быть считано из заданного массива; должно быть неотрицательным и не превышать меньшего изlimit() - indexиsrc.length - offset - Возвращает:
- Этот буфер
- Исключения:
-
IndexOutOfBoundsException- Если условия наindex,offset, иlengthпараметры не выполняются -
ReadOnlyBufferException- Если этот буфер только для чтения - С:
- 13
put
public FloatBuffer put(int index, float[] src)
Этот метод копирует значения с плавающей точкой из заданного исходного массива в этот буфер. Позиция этого буфера не меняется. Вызов этого метода в форме dst.put(index, src) ведет себя точно так же, как вызов:
dst.put(index, src, 0, src.length);
- Параметры:
-
index- Индекс в этом буфере, с которого начнется запись первого значения с плавающей точкой; должен быть неотрицательным и меньшеlimit() -
src- Массив, из которого считываются значения с плавающей точкой - Возвращает:
- Этот буфер
- Исключения:
-
IndexOutOfBoundsException- Еслиindexотрицательно, не меньшеlimit(), илиlimit() - index < src.length -
ReadOnlyBufferException- Если этот буфер только для чтения - С:
- 13
hasArray
public final boolean hasArray()
Если этот метод возвращает true, то методы array и arrayOffset могут безопасно вызываться.
- Определено в:
-
hasArrayв классеBuffer - Возвращает:
-
trueесли и только если этот буфер поддерживается массивом и не является только для чтения
array
public final float[] array()
Изменения в содержимом этого буфера приведут к изменению содержимого возвращаемого массива, и наоборот.
Вызовите метод hasArray перед вызовом этого метода, чтобы убедиться, что этот буфер имеет доступный поддерживающий массив.
- Определено в:
-
arrayв классеBuffer - Возвращает:
- Массив, поддерживающий этот буфер
- Исключения:
-
ReadOnlyBufferException- Если этот буфер поддерживается массивом, но является только для чтения -
UnsupportedOperationException- Если этот буфер не поддерживается доступным массивом
arrayOffset
public final int arrayOffset()
Если этот буфер поддерживается массивом, то позиция буфера p соответствует индексу массива p + arrayOffset().
Вызовите метод hasArray перед вызовом этого метода, чтобы убедиться, что этот буфер имеет доступный поддерживающий массив.
- Определено в:
-
arrayOffsetв классеBuffer - Возвращает:
- Смещение в массиве этого буфера первого элемента буфера
- Исключения:
-
ReadOnlyBufferException- Если этот буфер поддерживается массивом, но является только для чтения -
UnsupportedOperationException- Если этот буфер не поддерживается доступным массивом
position
public final FloatBuffer position(int newPosition)
- Переопределяет:
-
positionв классеBuffer - Параметры:
-
newPosition- Новое значение позиции; должно быть неотрицательным и не больше текущего предела - Возвращает:
- Этот буфер
limit
public final FloatBuffer limit(int newLimit)
- Переопределяет:
-
limitв классеBuffer - Параметры:
-
newLimit- Новое значение предела; должно быть неотрицательным и не больше емкости этого буфера - Возвращает:
- Этот буфер
mark
public final FloatBuffer mark()
- Переопределяет:
-
markв классеBuffer - Возвращает:
- Этот буфер
reset
public final FloatBuffer reset()
Вызов этого метода не изменяет и не отбрасывает значение метки.
- Переопределяет:
-
resetв классеBuffer - Возвращает:
- Этот буфер
clear
public final FloatBuffer clear()
Вызовите этот метод перед использованием последовательности операций чтения или записи канала для заполнения этого буфера. Например:
buf.clear(); // Prepare buffer for reading in.read(buf); // Read data
Этот метод не фактически стирает данные в буфере, но он назван так, как будто это делает, потому что он чаще всего используется в ситуациях, в которых это может быть так же верно.
- Переопределяет:
-
clearв классеBuffer - Возвращает:
- Этот буфер
flip
public final FloatBuffer flip()
После последовательности операций чтения или записи канала вызовите этот метод, чтобы подготовиться к последовательности операций записи канала или относительных операций get. Например:
buf.put(magic); // Prepend header in.read(buf); // Read data into rest of buffer buf.flip(); // Flip buffer out.write(buf); // Write header + data to channel
Этот метод часто используется совместно с методом compact при передаче данных из одного места в другое.
- Переопределяет:
-
flipв классеBuffer - Возвращает:
- Этот буфер
rewind
public final FloatBuffer rewind()
Вызовите этот метод перед последовательностью операций записи канала или операций get, предполагая, что предел уже установлен должным образом. Например:
out.write(buf); // Write remaining data buf.rewind(); // Rewind buffer buf.get(array); // Copy data into array
- Переопределяет:
-
rewindв классеBuffer - Возвращает:
- Этот буфер
compact
public abstract FloatBuffer compact()
Значения с плавающей точкой между текущей позицией буфера и его пределом, если таковые имеются, копируются в начало буфера. То есть значение с плавающей точкой с индексом p = position() копируется в индекс ноль, значение с плавающей точкой с индексом p + 1 копируется в индекс один и так далее, пока значение с плавающей точкой с индексом limit() - 1 не будет скопировано в индекс n = limit() - 1 - p. Позиция буфера затем устанавливается в n+1, а его предел — в его емкость. Метка, если она определена, отбрасывается.
Позиция буфера устанавливается в количество скопированных значений с плавающей точкой, а не в ноль, так что за вызовом этого метода может сразу же последовать вызов другого относительного метода put.
- Возвращает:
- Этот буфер
- Исключения:
-
ReadOnlyBufferException- Если этот буфер только для чтения
isDirect
public abstract boolean isDirect()
- Определено в:
-
isDirectв классеBuffer - Возвращает:
-
trueесли и только если этот буфер прямой
toString
public String toString()
- Переопределяет:
-
toStringв классеObject - Возвращает:
- Строка обобщения
hashCode
public int hashCode()
Код хеширования буфера с плавающей точкой зависит только от его оставшихся элементов; то есть от элементов от position() до и включая элемент в limit() - 1.
Поскольку коды хеширования буферов зависят от содержимого, не рекомендуется использовать буферы в качестве ключей в картах хешей или подобных структурах данных, если не известно, что их содержимое не изменится.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- Текущий код хеширования этого буфера
- См. также:
equals
public boolean equals(Object ob)
Два буфера с плавающей точкой равны, если и только если
У них одинаковый тип элементов,
У них одинаковое количество оставшихся элементов, и
Две последовательности оставшихся элементов, рассматриваемые независимо от своих начальных позиций, точечно равны. Этот метод рассматривает два элемента с плавающей точкой
aиbкак равные, если(a == b) || (Float.isNaN(a) && Float.isNaN(b)). Значения-0.0и+0.0считаются равными, в отличие отFloat.equals(Object).
Буфер с плавающей точкой не равен ни одному другому типу объекта.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
ob- Объект, с которым должен быть сравнен этот буфер - Возвращает:
-
trueесли и только если этот буфер равен заданному объекту - См. также:
compareTo
public int compareTo(FloatBuffer that)
Два буфера с плавающей точкой сравниваются путём лексикографического сравнения последовательностей оставшихся элементов, не обращая внимания на начальную позицию каждой последовательности в соответствующем буфере. Пары float элементов сравниваются так же, как если бы вызывали Float.compare(float,float), за исключением того, что -0.0 и 0.0 считаются равными. Float.NaN считается этим методом равным самому себе и больше, чем все остальные float значения (включая Float.POSITIVE_INFINITY).
Буфер с плавающей точкой не сравним ни с каким другим типом объекта.
- Specified by:
-
compareToв интерфейсеComparable<FloatBuffer> - Parameters:
-
that- объект для сравнения. - Returns:
- Отрицательное, нулевое или положительное целое число, в зависимости от того, меньше, равен или больше этот буфер, чем заданный буфер
mismatch
public int mismatch(FloatBuffer that)
position каждого буфера и будет в диапазоне от 0 (включительно) до меньшего из remaining элементов в каждом буфере (исключительно). Если два буфера имеют общий префикс, то возвращаемый индекс равен длине общего префикса, и из этого следует, что несоответствие между двумя буферами возникает на этом индексе в соответствующих буферах. Если один буфер является собственным префиксом другого, то возвращаемый индекс равен меньшему из оставшихся элементов в каждом буфере, и из этого следует, что индекс действителен только для буфера с большим количеством оставшихся элементов. В противном случае несоответствия нет.
- Parameters:
-
that- Буфер байтов, который будет проверен на несоответствие с этим буфером - Returns:
- Относительный индекс первого несоответствия между этим и заданным буфером, иначе -1, если несоответствия нет.
- Since:
- 11
order
public abstract ByteOrder order()
Порядок байтов буфера с плавающей точкой, созданного путём выделения памяти или с помощью обертывания существующего float массива, является native order базового оборудования. Порядок байтов буфера с плавающей точкой, созданного как вид буфера байтов, такой же, как у буфера байтов в момент создания вида.
- Returns:
- Порядок байтов этого буфера
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/nio/FloatBuffer.html