Класс FloatBuffer
- Все реализуемые интерфейсы:
Comparable<FloatBuffer>
public abstract sealed class FloatBuffer extends Buffer implements Comparable<FloatBuffer>
Этот класс определяет четыре категории операций над буферами чисел с плавающей точкой:
Абсолютные и относительные методы
getиput, которые считывают и записывают отдельные числа с плавающей точкой;Абсолютные и относительные методы
bulk get, которые переносят непрерывные последовательности чисел с плавающей точкой из этого буфера в массив;Абсолютные и относительные методы
bulk put, которые переносят непрерывные последовательности чисел с плавающей точкой из массива таких чисел или другого буфера чисел с плавающей точкой в этот буфер;Метод для
compactingбуфера чисел с плавающей точкой.
Буферы чисел с плавающей точкой можно создать, вызвав метод allocation, который выделяет память для содержимого буфера, поместив существующий массив чисел с плавающей точкой в буфер с помощью метода wrapping или создав представление существующего байтового буфера.
Как и байтовый буфер, буфер чисел с плавающей точкой может быть прямым или непрямым. Буфер чисел с плавающей точкой, созданный с помощью методов wrap этого класса, будет непрямым. Буфер чисел с плавающей точкой, созданный как представление байтового буфера, будет прямым тогда и только тогда, когда сам байтовый буфер является прямым. Определить, является ли буфер чисел с плавающей точкой прямым, можно вызвав метод isDirect.
Методы этого класса, которые не возвращают иного значения, определены так, чтобы возвращать буфер, для которого они были вызваны. Это позволяет объединять вызовы методов в цепочки.
Необязательные операции
Методы, определённые как необязательные операции, при вызове для буфера только для чтения FloatBuffer выбрасывают исключение ReadOnlyBufferException. Методы array и arrayOffset выбрасывают исключение UnsupportedOperationException, если FloatBuffer не основан на доступном массиве чисел с плавающей точкой (независимо от того, доступен ли FloatBuffer только для чтения).- Начиная с версии:
- 1.4
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static FloatBuffer |
allocate |
Выделяет память для нового буфера чисел с плавающей точкой. |
final float[] |
array() |
Возвращает массив чисел с плавающей точкой, на котором основан этот буфер (необязательная операция). |
final int |
arrayOffset() |
Возвращает смещение первого элемента буфера относительно массива, на котором основан этот буфер (необязательная операция). |
abstract FloatBuffer |
asReadOnlyBuffer() |
Создаёт новый буфер чисел с плавающей точкой только для чтения, совместно использующий содержимое этого буфера. |
final FloatBuffer |
clear() |
Очищает этот буфер. |
abstract FloatBuffer |
compact() |
Сжимает этот буфер (необязательная операция). |
int |
compareTo |
Сравнивает этот буфер с другим. |
abstract FloatBuffer |
duplicate() |
Создаёт новый буфер чисел с плавающей точкой, совместно использующий содержимое этого буфера. |
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() |
Проверяет, основан ли этот буфер на доступном массиве чисел с плавающей точкой. |
int |
hashCode() |
Возвращает текущий хеш-код этого буфера. |
abstract boolean |
isDirect() |
Проверяет, является ли этот буфер чисел с плавающей точкой прямым. |
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() |
Создаёт новый буфер чисел с плавающей точкой, содержимое которого является совместно используемой подпоследовательностью содержимого этого буфера. |
abstract FloatBuffer |
slice |
Создаёт новый буфер чисел с плавающей точкой, содержимое которого является совместно используемой подпоследовательностью содержимого этого буфера. |
String |
toString() |
Возвращает строку со сведениями о состоянии этого буфера. |
static FloatBuffer |
wrap |
Помещает массив чисел с плавающей точкой в буфер. |
static FloatBuffer |
wrap |
Помещает массив чисел с плавающей точкой в буфер. |
Методы, объявленные в классе Buffer
capacity, hasRemaining, isReadOnly, limit, position, remaining | Модификатор и тип | Метод | Описание |
|---|---|---|
final int |
capacity() |
Возвращает ёмкость этого буфера. |
final boolean |
hasRemaining() |
Проверяет, есть ли элементы между текущей позицией и пределом. |
abstract boolean |
isReadOnly() |
Проверяет, доступен ли этот буфер только для чтения. |
final int |
limit() |
Возвращает предел этого буфера. |
final int |
position() |
Возвращает позицию этого буфера. |
final int |
remaining() |
Возвращает количество элементов между текущей позицией и пределом. |
Методы, объявленные в классе Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Финализация признана устаревшей и может быть удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного периода реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного периода реального времени. |
Подробное описание методов
allocate
public static FloatBuffer allocate(int capacity)
Позиция нового буфера будет равна нулю, предел будет равен его емкости, метка не будет определена, каждый его элемент будет инициализирован нулем, а порядок байтов будет соответствовать native order используемого оборудования. У него будет backing array, а его array offset будет равен нулю.
- Параметры:
-
capacity— емкость нового буфера в значениях типа float - Возвращает:
- Новый буфер float
- Исключения:
-
IllegalArgumentException— еслиcapacityявляется отрицательным целым числом
wrap
public static FloatBuffer wrap(float[] array, int offset, int length)
Новый буфер будет связан с заданным массивом float; то есть изменения буфера приведут к изменению массива, и наоборот. Емкость нового буфера будет array.length, его позиция будет равна offset, его предел будет равен offset + length, метка не будет определена, а порядок байтов будет соответствовать native order используемого оборудования. Его backing array будет заданным массивом, а его array offset будет равен нулю.
- Параметры:
-
array— массив, с которым будет связан новый буфер -
offset— смещение используемого подмассива; должно быть неотрицательным и не превышатьarray.length. Позиция нового буфера будет установлена в это значение. -
length— длина используемого подмассива; должна быть неотрицательной и не превышатьarray.length - offset. Предел нового буфера будет установлен вoffset + length. - Возвращает:
- Новый буфер float
- Исключения:
-
IndexOutOfBoundsException— если предварительные условия для параметровoffsetиlengthне выполнены
wrap
public static FloatBuffer wrap(float[] array)
Новый буфер будет связан с заданным массивом float; то есть изменения буфера приведут к изменению массива, и наоборот. Емкость и предел нового буфера будут равны array.length, его позиция будет равна нулю, метка не будет определена, а порядок байтов будет соответствовать native order используемого оборудования. Его backing array будет заданным массивом, а его array offset будет равен нулю.
- Параметры:
-
array— массив, с которым будет связан этот буфер - Возвращает:
- Новый буфер float
slice
public abstract FloatBuffer slice()
Содержимое нового буфера будет начинаться с текущей позиции этого буфера. Изменения содержимого этого буфера будут видны в новом буфере, и наоборот; значения позиции, предела и метки двух буферов будут независимыми.
Позиция нового буфера будет равна нулю, его емкость и предел будут равны количеству оставшихся в этом буфере значений float, метка не будет определена, а порядок байтов будет совпадать с порядком байтов этого буфера. Новый буфер будет прямым тогда и только тогда, когда этот буфер является прямым, и будет доступен только для чтения тогда и только тогда, когда этот буфер доступен только для чтения.
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()
Содержимое нового буфера будет таким же, как у этого буфера. Изменения содержимого этого буфера будут видны в новом буфере, и наоборот; значения позиции, предела и метки двух буферов будут независимыми.
Значения емкости, предела, позиции и метки нового буфера, а также его порядок байтов будут совпадать со значениями этого буфера. Новый буфер будет прямым тогда и только тогда, когда этот буфер является прямым, и будет доступен только для чтения тогда и только тогда, когда этот буфер доступен только для чтения.
asReadOnlyBuffer
public abstract FloatBuffer asReadOnlyBuffer()
Содержимое нового буфера будет таким же, как у этого буфера. Изменения содержимого этого буфера будут видны в новом буфере; однако сам новый буфер будет доступен только для чтения и не позволит изменять общее содержимое. Значения позиции, предела и метки двух буферов будут независимыми.
Значения емкости, предела, позиции и метки нового буфера, а также его порядок байтов будут совпадать со значениями этого буфера.
Если этот буфер сам доступен только для чтения, данный метод работает точно так же, как метод duplicate.
- Возвращает:
- Новый буфер float, доступный только для чтения
get
public abstract float get()
- Возвращает:
- Значение float по текущей позиции буфера
- Исключения:
-
BufferUnderflowException— если текущая позиция буфера не меньше его предела
put
public abstract FloatBuffer put(float f)
Записывает заданное значение float в этот буфер по текущей позиции, а затем увеличивает позицию.
- Параметры:
-
f— значение float для записи - Возвращает:
- Этот буфер
- Исключения:
-
BufferOverflowException— если текущая позиция этого буфера не меньше его предела -
ReadOnlyBufferException— если этот буфер доступен только для чтения
get
public abstract float get(int index)
- Параметры:
-
index— индекс, по которому будет считано значение float - Возвращает:
- Значение float по заданному индексу
- Исключения:
-
IndexOutOfBoundsException— еслиindexотрицательно или не меньше предела буфера
put
public abstract FloatBuffer put(int index, float f)
Записывает заданное значение float в этот буфер по заданному индексу.
- Параметры:
-
index— индекс, по которому будет записано значение float -
f— значение float для записи - Возвращает:
- Этот буфер
- Исключения:
-
IndexOutOfBoundsException— еслиindexотрицательно или не меньше предела буфера -
ReadOnlyBufferException— если этот буфер доступен только для чтения
get
public FloatBuffer get(float[] dst, int offset, int length)
Этот метод переносит значения float из этого буфера в заданный массив назначения. Если в буфере осталось меньше значений float, чем требуется для выполнения запроса, то есть если length > remaining(), значения float не переносятся и выбрасывается исключение BufferUnderflowException.
В противном случае этот метод копирует length значений float из этого буфера в заданный массив, начиная с текущей позиции этого буфера и заданного смещения в массиве. Затем позиция этого буфера увеличивается на length.
Иными словами, вызов этого метода в форме src.get(dst, off, len) имеет тот же эффект, что и цикл
for (int i = off; i < off + len; i++)
dst[i] = src.get();
- Параметры:
-
dst— массив, в который будут записаны значения float -
offset— смещение в массиве первого значения float для записи; должно быть неотрицательным и не превышатьdst.length -
length— максимальное количество значений float для записи в заданный массив; должно быть неотрицательным и не превышатьdst.length - offset - Возвращает:
- Этот буфер
- Исключения:
-
BufferUnderflowException— если в этом буфере осталось меньшеlengthзначений float -
IndexOutOfBoundsException— если предварительные условия для параметровoffsetиlengthне выполнены
get
public FloatBuffer get(float[] dst)
Этот метод переносит значения float из этого буфера в заданный массив назначения. Вызов этого метода в форме src.get(a) работает точно так же, как вызов
src.get(a, 0, a.length)
- Параметры:
-
dst— массив назначения - Возвращает:
- Этот буфер
- Исключения:
-
BufferUnderflowException— если в этом буфере осталось меньшеlengthзначений float
get
public FloatBuffer get(int index, float[] dst, int offset, int length)
Этот метод переносит length значений float из этого буфера в заданный массив, начиная с заданного индекса в этом буфере и заданного смещения в массиве. Позиция этого буфера не изменяется.
Вызов этого метода в форме src.get(index, dst, offset, length) имеет точно такой же эффект, как следующий цикл, за исключением того, что сначала проверяется согласованность переданных параметров; кроме того, этот метод потенциально намного эффективнее:
for (int i = offset, j = index; i < offset + length; i++, j++)
dst[i] = src.get(j);
- Параметры:
-
index— индекс в этом буфере, с которого будет считано первое значение float; должен быть неотрицательным и меньшеlimit() -
dst— массив назначения -
offset— смещение в массиве первого значения float для записи; должно быть неотрицательным и меньшеdst.length -
length— количество значений float для записи в заданный массив; должно быть неотрицательным и не превышать меньшее из значенийlimit() - indexиdst.length - offset - Возвращает:
- Этот буфер
- Исключения:
-
IndexOutOfBoundsException— если предварительные условия для параметровindex,offsetиlengthне выполнены - Начиная с:
- 13
get
public FloatBuffer get(int index, float[] dst)
Этот метод переносит значения float из этого буфера в заданный массив назначения. Позиция этого буфера не изменяется. Вызов этого метода в форме src.get(index, dst) работает точно так же, как вызов:
src.get(index, dst, 0, dst.length)
- Параметры:
-
index— индекс в этом буфере, с которого будет считано первое значение float; должен быть неотрицательным и меньшеlimit() -
dst— массив назначения - Возвращает:
- Этот буфер
- Исключения:
-
IndexOutOfBoundsException— еслиindexотрицательно, не меньшеlimit()илиlimit() - index < dst.length - Начиная с:
- 13
put
public FloatBuffer put(FloatBuffer src)
Этот метод переносит оставшиеся значения float из заданного исходного буфера в этот буфер. Если в исходном буфере осталось больше значений float, чем в этом буфере, то есть если src.remaining() > remaining(), значения float не переносятся и выбрасывается исключение BufferOverflowException.
В противном случае этот метод копирует n = src.remaining() значений float из заданного буфера в этот буфер, начиная с текущей позиции каждого буфера. Затем позиции обоих буферов увеличиваются на n.
Иными словами, вызов этого метода в форме dst.put(src) имеет тот же эффект, что и цикл
while (src.hasRemaining())
dst.put(src.get());
- Параметры:
-
src— исходный буфер, из которого будут считываться значения float; не должен совпадать с этим буфером - Возвращает:
- Этот буфер
- Исключения:
-
BufferOverflowException— если в этом буфере недостаточно места для оставшихся значений float из исходного буфера -
IllegalArgumentException— если исходный буфер совпадает с этим буфером -
ReadOnlyBufferException— если этот буфер доступен только для чтения
put
public FloatBuffer put(int index, FloatBuffer src, int offset, int length)
Этот метод переносит length значений float из заданного исходного буфера в этот буфер, начиная с заданной 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— индекс в этом буфере, по которому будет записано первое значение float; должен быть неотрицательным и меньшеlimit() -
src— буфер, из которого будут считываться значения float -
offset— индекс в исходном буфере первого значения float для считывания; должен быть неотрицательным и меньшеsrc.limit() -
length— количество значений float для считывания из заданного буфера; должно быть неотрицательным и не превышать меньшее из значенийlimit() - indexиsrc.limit() - offset - Возвращает:
- Этот буфер
- Исключения:
-
IndexOutOfBoundsException— если предварительные условия для параметровindex,offsetиlengthне выполнены -
ReadOnlyBufferException— если этот буфер доступен только для чтения - Начиная с:
- 16
put
public FloatBuffer put(float[] src, int offset, int length)
Этот метод переносит значения float из заданного исходного массива в этот буфер. Если из массива требуется скопировать больше значений float, чем осталось в этом буфере, то есть если length > remaining(), значения float не переносятся и выбрасывается исключение BufferOverflowException.
В противном случае этот метод копирует length значений float из заданного массива в этот буфер, начиная с заданного смещения в массиве и текущей позиции этого буфера. Затем позиция этого буфера увеличивается на length.
Иными словами, вызов этого метода в форме dst.put(src, off, len) имеет тот же эффект, что и цикл
for (int i = off; i < off + len; i++)
dst.put(src[i]);
- Параметры:
-
src— массив, из которого будут считываться значения float -
offset— смещение в массиве первого значения float для считывания; должно быть неотрицательным и не превышатьsrc.length -
length— количество значений float для считывания из заданного массива; должно быть неотрицательным и не превышатьsrc.length - offset - Возвращает:
- Этот буфер
- Исключения:
-
BufferOverflowException— если в этом буфере недостаточно места -
IndexOutOfBoundsException— если предварительные условия для параметровoffsetиlengthне выполнены -
ReadOnlyBufferException— если этот буфер доступен только для чтения
put
public final FloatBuffer put(float[] src)
Этот метод переносит все содержимое заданного исходного массива float в этот буфер. Вызов этого метода в форме 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 значений float из заданного массива, начиная с заданного смещения в массиве и заданного индекса в этом буфере. Позиция этого буфера не изменяется.
Вызов этого метода в форме dst.put(index, src, offset, length) имеет точно такой же эффект, как следующий цикл, за исключением того, что сначала проверяется согласованность переданных параметров; кроме того, этот метод потенциально намного эффективнее:
for (int i = offset, j = index; i < offset + length; i++, j++)
dst.put(j, src[i]);
- Параметры:
-
index— индекс в этом буфере, по которому будет записано первое значение float; должен быть неотрицательным и меньшеlimit() -
src— массив, из которого будут считываться значения float -
offset— смещение в массиве первого значения float для считывания; должно быть неотрицательным и меньшеsrc.length -
length— количество значений float для считывания из заданного массива; должно быть неотрицательным и не превышать меньшее из значенийlimit() - indexиsrc.length - offset - Возвращает:
- Этот буфер
- Исключения:
-
IndexOutOfBoundsException— если предварительные условия для параметровindex,offsetиlengthне выполнены -
ReadOnlyBufferException— если этот буфер доступен только для чтения - Начиная с:
- 13
put
public FloatBuffer put(int index, float[] src)
Этот метод копирует значения float из заданного исходного массива в этот буфер. Позиция этого буфера не изменяется. Вызов этого метода в форме dst.put(index, src) работает точно так же, как вызов:
dst.put(index, src, 0, src.length);
- Параметры:
-
index— индекс в этом буфере, по которому будет записано первое значение float; должен быть неотрицательным и меньшеlimit() -
src— массив, из которого будут считываться значения float - Возвращает:
- Этот буфер
- Исключения:
-
IndexOutOfBoundsException— еслиindexотрицательно, не меньшеlimit()илиlimit() - index < src.length -
ReadOnlyBufferException— если этот буфер доступен только для чтения - Начиная с:
- 13
hasArray
public final boolean hasArray()
Если этот метод возвращает true, методы array и arrayOffset можно безопасно вызывать.
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)
limit
public final FloatBuffer limit(int newLimit)
mark
reset
clear
public final FloatBuffer clear()
Вызовите этот метод перед заполнением буфера последовательностью операций чтения из канала или операций put. Например:
buf.clear(); // Prepare buffer for reading
in.read(buf); // Read data
Этот метод на самом деле не стирает данные в буфере, но называется так, как если бы стирал, поскольку чаще всего используется в ситуациях, когда результат практически тот же.
flip
public final FloatBuffer flip()
После последовательности операций чтения из канала или операций put вызовите этот метод, чтобы подготовиться к последовательности операций записи в канал или относительных операций 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 при передаче данных из одного места в другое.
rewind
public final FloatBuffer rewind()
Вызовите этот метод перед последовательностью операций записи в канал или операций get, предполагая, что предел уже установлен должным образом. Например:
out.write(buf); // Write remaining data
buf.rewind(); // Rewind buffer
buf.get(array); // Copy data into array
compact
public abstract FloatBuffer compact()
Элементы типа float между текущей позицией буфера и его пределом, если они есть, копируются в начало буфера. То есть элемент типа float с индексом p = position() копируется в индекс ноль, элемент типа float с индексом p + 1 копируется в индекс один и так далее, пока элемент типа float с индексом limit() - 1 не будет скопирован в индекс n = limit() - 1 - p. Затем позиция буфера устанавливается в n+1, а его предел — равным его ёмкости. Если метка задана, она сбрасывается.
Позиция буфера устанавливается равной числу скопированных элементов типа float, а не нулю, чтобы сразу после вызова этого метода можно было вызвать другой относительный метод put.
- Возвращает:
- Этот буфер
- Выбрасывает:
-
ReadOnlyBufferException— если этот буфер доступен только для чтения
isDirect
toString
hashCode
public int hashCode()
Хеш-код буфера float зависит только от оставшихся в нём элементов, то есть от элементов, начиная с position() и заканчивая элементом с индексом limit() - 1 включительно.
Поскольку хеш-коды буферов зависят от их содержимого, не рекомендуется использовать буферы в качестве ключей в хеш-таблицах или аналогичных структурах данных, если не известно, что их содержимое не изменится.
equals
public boolean equals(Object ob)
Два буфера float равны тогда и только тогда, когда
они имеют один и тот же тип элементов;
в них осталось одинаковое число элементов;
две последовательности оставшихся элементов, рассматриваемые независимо от их начальных позиций, равны поэлементно. Этот метод считает два элемента float
aиbравными, если(a == b) || (Float.isNaN(a) && Float.isNaN(b)). Значения-0.0и+0.0считаются равными, в отличие отFloat.equals(Object).
Буфер float не равен объекту любого другого типа.
compareTo
public int compareTo(FloatBuffer that)
Два буфера float сравниваются лексикографически по последовательностям оставшихся элементов, независимо от начальной позиции каждой последовательности в соответствующем буфере. Каждая пара элементов float сравнивается так, как если бы был вызван метод Float.compare(float,float), за исключением того, что -0.0 и 0.0 считаются равными. Этот метод считает Float.NaN равным самому себе и большим, чем все остальные значения float (включая Float.POSITIVE_INFINITY).
Буфер float нельзя сравнивать с объектами других типов.
- Определено в:
-
compareToв интерфейсеComparable<FloatBuffer> - Параметры:
-
that— объект для сравнения. - Возвращает:
- Отрицательное целое число, ноль или положительное целое число, если этот буфер меньше, равен или больше заданного буфера
mismatch
public int mismatch(FloatBuffer that)
position каждого буфера и находится в диапазоне от 0 (включительно) до меньшего из чисел элементов remaining в каждом буфере (не включительно). Если у двух буферов есть общий префикс, возвращённый индекс равен длине общего префикса, а значит, по этому индексу в соответствующих буферах имеется несовпадение. Если один буфер является собственным префиксом другого, возвращённый индекс равен меньшему из чисел оставшихся элементов в каждом буфере; следовательно, этот индекс действителен только для буфера с большим числом оставшихся элементов. В противном случае несовпадений нет.
- Параметры:
-
that— буфер byte для проверки на несовпадение с этим буфером - Возвращает:
- Относительный индекс первого несовпадения между этим и заданным буфером либо -1, если несовпадений нет.
- С версии:
- 11
order
public abstract ByteOrder order()
Порядок байтов буфера float, созданного путём выделения памяти или обёртывания существующего массива float, совпадает с native order базового оборудования. Порядок байтов буфера float, созданного как представление буфера byte, совпадает с порядком байтов буфера byte на момент создания представления.
- Возвращает:
- Порядок байтов этого буфера
© 1993, 2025, 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.