Spec-Zone.ru › OpenJDK 27

Класс FloatBuffer

java.lang.Object
java.nio.Buffer
java.nio.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(int capacity)
Выделяет память для нового буфера чисел с плавающей точкой.
final float[] array()
Возвращает массив чисел с плавающей точкой, на котором основан этот буфер (необязательная операция).
final int arrayOffset()
Возвращает смещение первого элемента буфера относительно массива, на котором основан этот буфер (необязательная операция).
abstract FloatBuffer asReadOnlyBuffer()
Создаёт новый буфер чисел с плавающей точкой только для чтения, совместно использующий содержимое этого буфера.
final FloatBuffer clear()
Очищает этот буфер.
abstract FloatBuffer compact()
Сжимает этот буфер (необязательная операция).
int compareTo(FloatBuffer that)
Сравнивает этот буфер с другим.
abstract FloatBuffer duplicate()
Создаёт новый буфер чисел с плавающей точкой, совместно использующий содержимое этого буфера.
boolean equals(Object ob)
Проверяет, равен ли этот буфер другому объекту.
final FloatBuffer flip()
Переводит этот буфер в режим чтения.
abstract float get()
Относительный метод get.
FloatBuffer get(float[] dst)
Относительный групповой метод get.
FloatBuffer get(float[] dst, int offset, int length)
Относительный групповой метод get.
abstract float get(int index)
Абсолютный метод get.
FloatBuffer get(int index, float[] dst)
Абсолютный групповой метод get.
FloatBuffer get(int index, float[] dst, int offset, int length)
Абсолютный групповой метод get.
final boolean hasArray()
Проверяет, основан ли этот буфер на доступном массиве чисел с плавающей точкой.
int hashCode()
Возвращает текущий хеш-код этого буфера.
abstract boolean isDirect()
Проверяет, является ли этот буфер чисел с плавающей точкой прямым.
final FloatBuffer limit(int newLimit)
Устанавливает предел этого буфера.
final FloatBuffer mark()
Устанавливает отметку буфера в текущей позиции.
int mismatch(FloatBuffer that)
Находит и возвращает относительный индекс первого несовпадения между этим буфером и заданным буфером.
abstract ByteOrder order()
Возвращает порядок байтов этого буфера.
final FloatBuffer position(int newPosition)
Устанавливает позицию этого буфера.
abstract FloatBuffer put(float f)
Относительный метод put (необязательная операция).
final FloatBuffer put(float[] src)
Относительный групповой метод put (необязательная операция).
FloatBuffer put(float[] src, int offset, int length)
Относительный групповой метод put (необязательная операция).
abstract FloatBuffer put(int index, float f)
Абсолютный метод put (необязательная операция).
FloatBuffer put(int index, float[] src)
Абсолютный групповой метод put (необязательная операция).
FloatBuffer put(int index, float[] src, int offset, int length)
Абсолютный групповой метод put (необязательная операция).
FloatBuffer put(int index, FloatBuffer src, int offset, int length)
Абсолютный групповой метод put (необязательная операция).
FloatBuffer put(FloatBuffer src)
Относительный групповой метод put (необязательная операция).
final FloatBuffer reset()
Возвращает позицию этого буфера к позиции, отмеченной ранее.
final FloatBuffer rewind()
Перематывает этот буфер.
abstract FloatBuffer slice()
Создаёт новый буфер чисел с плавающей точкой, содержимое которого является совместно используемой подпоследовательностью содержимого этого буфера.
abstract FloatBuffer slice(int index, int length)
Создаёт новый буфер чисел с плавающей точкой, содержимое которого является совместно используемой подпоследовательностью содержимого этого буфера.
String toString()
Возвращает строку со сведениями о состоянии этого буфера.
static FloatBuffer wrap(float[] array)
Помещает массив чисел с плавающей точкой в буфер.
static FloatBuffer wrap(float[] array, int offset, int length)
Помещает массив чисел с плавающей точкой в буфер.

Методы, объявленные в классе 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(long timeoutMillis)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного периода реального времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного периода реального времени.

Подробное описание методов

allocate

public static FloatBuffer allocate(int capacity)
Выделяет новый буфер float.

Позиция нового буфера будет равна нулю, предел будет равен его емкости, метка не будет определена, каждый его элемент будет инициализирован нулем, а порядок байтов будет соответствовать native order используемого оборудования. У него будет backing array, а его array offset будет равен нулю.

Параметры:
capacity — емкость нового буфера в значениях типа float
Возвращает:
Новый буфер float
Исключения:
IllegalArgumentException — если capacity является отрицательным целым числом

wrap

public static FloatBuffer wrap(float[] array, int offset, int length)
Оборачивает массив float в буфер.

Новый буфер будет связан с заданным массивом 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 в буфер.

Новый буфер будет связан с заданным массивом float; то есть изменения буфера приведут к изменению массива, и наоборот. Емкость и предел нового буфера будут равны array.length, его позиция будет равна нулю, метка не будет определена, а порядок байтов будет соответствовать native order используемого оборудования. Его backing array будет заданным массивом, а его array offset будет равен нулю.

Параметры:
array — массив, с которым будет связан этот буфер
Возвращает:
Новый буфер float

slice

public abstract FloatBuffer slice()
Создает новый буфер float, содержимое которого является общей подпоследовательностью содержимого этого буфера.

Содержимое нового буфера будет начинаться с текущей позиции этого буфера. Изменения содержимого этого буфера будут видны в новом буфере, и наоборот; значения позиции, предела и метки двух буферов будут независимыми.

Позиция нового буфера будет равна нулю, его емкость и предел будут равны количеству оставшихся в этом буфере значений float, метка не будет определена, а порядок байтов будет совпадать с порядком байтов этого буфера. Новый буфер будет прямым тогда и только тогда, когда этот буфер является прямым, и будет доступен только для чтения тогда и только тогда, когда этот буфер доступен только для чтения.

Определено в:
slice в классе Buffer
Возвращает:
Новый буфер float

slice

public abstract FloatBuffer slice(int index, int length)
Создает новый буфер float, содержимое которого является общей подпоследовательностью содержимого этого буфера.

Содержимое нового буфера будет начинаться с позиции index в этом буфере и будет содержать length элементов. Изменения содержимого этого буфера будут видны в новом буфере, и наоборот; значения позиции, предела и метки двух буферов будут независимыми.

Позиция нового буфера будет равна нулю, его емкость и предел будут равны length, метка не будет определена, а порядок байтов будет совпадать с порядком байтов этого буфера. Новый буфер будет прямым тогда и только тогда, когда этот буфер является прямым, и будет доступен только для чтения тогда и только тогда, когда этот буфер доступен только для чтения.

Определено в:
slice в классе Buffer
Параметры:
index — позиция в этом буфере, с которой будет начинаться содержимое нового буфера; должна быть неотрицательной и не превышать limit()
length — количество элементов в новом буфере; должно быть неотрицательным и не превышать limit() - index
Возвращает:
Новый буфер
Исключения:
IndexOutOfBoundsException — если index отрицательно или превышает limit(), length отрицательно или length > limit() - index
Начиная с:
13

duplicate

public abstract FloatBuffer duplicate()
Создает новый буфер float, совместно использующий содержимое этого буфера.

Содержимое нового буфера будет таким же, как у этого буфера. Изменения содержимого этого буфера будут видны в новом буфере, и наоборот; значения позиции, предела и метки двух буферов будут независимыми.

Значения емкости, предела, позиции и метки нового буфера, а также его порядок байтов будут совпадать со значениями этого буфера. Новый буфер будет прямым тогда и только тогда, когда этот буфер является прямым, и будет доступен только для чтения тогда и только тогда, когда этот буфер доступен только для чтения.

Определено в:
duplicate в классе Buffer
Возвращает:
Новый буфер float

asReadOnlyBuffer

public abstract FloatBuffer asReadOnlyBuffer()
Создает новый буфер float, доступный только для чтения и совместно использующий содержимое этого буфера.

Содержимое нового буфера будет таким же, как у этого буфера. Изменения содержимого этого буфера будут видны в новом буфере; однако сам новый буфер будет доступен только для чтения и не позволит изменять общее содержимое. Значения позиции, предела и метки двух буферов будут независимыми.

Значения емкости, предела, позиции и метки нового буфера, а также его порядок байтов будут совпадать со значениями этого буфера.

Если этот буфер сам доступен только для чтения, данный метод работает точно так же, как метод duplicate.

Возвращает:
Новый буфер float, доступный только для чтения

get

public abstract float get()
Относительный метод get. Считывает значение float по текущей позиции буфера, а затем увеличивает позицию.
Возвращает:
Значение float по текущей позиции буфера
Исключения:
BufferUnderflowException — если текущая позиция буфера не меньше его предела

put

public abstract FloatBuffer put(float f)
Относительный метод put (необязательная операция).

Записывает заданное значение float в этот буфер по текущей позиции, а затем увеличивает позицию.

Параметры:
f — значение float для записи
Возвращает:
Этот буфер
Исключения:
BufferOverflowException — если текущая позиция этого буфера не меньше его предела
ReadOnlyBufferException — если этот буфер доступен только для чтения

get

public abstract float get(int index)
Абсолютный метод get. Считывает значение float по заданному индексу.
Параметры:
index — индекс, по которому будет считано значение float
Возвращает:
Значение float по заданному индексу
Исключения:
IndexOutOfBoundsException — если index отрицательно или не меньше предела буфера

put

public abstract FloatBuffer put(int index, float f)
Абсолютный метод put (необязательная операция).

Записывает заданное значение float в этот буфер по заданному индексу.

Параметры:
index — индекс, по которому будет записано значение float
f — значение float для записи
Возвращает:
Этот буфер
Исключения:
IndexOutOfBoundsException — если index отрицательно или не меньше предела буфера
ReadOnlyBufferException — если этот буфер доступен только для чтения

get

public FloatBuffer get(float[] dst, int offset, int length)
Относительный метод пакетного get.

Этот метод переносит значения 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();
за исключением того, что сначала проверяется наличие в этом буфере достаточного количества значений float; кроме того, этот метод потенциально намного эффективнее.
Параметры:
dst — массив, в который будут записаны значения float
offset — смещение в массиве первого значения float для записи; должно быть неотрицательным и не превышать dst.length
length — максимальное количество значений float для записи в заданный массив; должно быть неотрицательным и не превышать dst.length - offset
Возвращает:
Этот буфер
Исключения:
BufferUnderflowException — если в этом буфере осталось меньше length значений float
IndexOutOfBoundsException — если предварительные условия для параметров offset и length не выполнены

get

public FloatBuffer get(float[] dst)
Относительный метод пакетного get.

Этот метод переносит значения 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)
Абсолютный метод пакетного get.

Этот метод переносит 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)
Абсолютный метод пакетного get.

Этот метод переносит значения 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)
Относительный метод пакетного put (необязательная операция).

Этот метод переносит оставшиеся значения 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)
Абсолютный метод пакетного put (необязательная операция).

Этот метод переносит 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)
Относительный метод пакетного put (необязательная операция).

Этот метод переносит значения 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)
Относительный метод пакетного put (необязательная операция).

Этот метод переносит все содержимое заданного исходного массива 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)
Абсолютный метод пакетного put (необязательная операция).

Этот метод переносит 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)
Абсолютный метод пакетного put (необязательная операция).

Этот метод копирует значения 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()
Сообщает, связан ли этот буфер с доступным массивом float.

Если этот метод возвращает true, методы array и arrayOffset можно безопасно вызывать.

Определено в:
hasArray в классе Buffer
Возвращает:
true тогда и только тогда, когда этот буфер связан с массивом и не доступен только для чтения

array

public final float[] array()
Возвращает массив float, с которым связан этот буфер (необязательная операция).

Изменения содержимого этого буфера приведут к изменению содержимого возвращенного массива, и наоборот.

Перед вызовом этого метода вызовите метод 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 — новое значение позиции; должно быть неотрицательным и не превышать текущий предел
Возвращает:
Этот буфер
Начиная с:
9

limit

public final FloatBuffer limit(int newLimit)
Устанавливает предел этого буфера. Если позиция больше нового предела, она устанавливается в новое значение предела. Если метка определена и больше нового предела, она сбрасывается.
Переопределяет:
limit в классе Buffer
Параметры:
newLimit — новое значение предела; должно быть неотрицательным и не превышать емкость этого буфера
Возвращает:
Этот буфер
Начиная с:
9

mark

public final FloatBuffer mark()
Устанавливает метку этого буфера в его текущей позиции.
Переопределяет:
mark в классе Buffer
Возвращает:
Этот буфер
Начиная с:
9

reset

public final FloatBuffer reset()
Сбрасывает позицию этого буфера до ранее отмеченной позиции.

Вызов этого метода не изменяет и не сбрасывает значение метки.

Переопределяет:
reset в классе Buffer
Возвращает:
Этот буфер
Начиная с:
9

clear

public final FloatBuffer clear()
Очищает этот буфер. Позиция устанавливается в ноль, предел устанавливается равным емкости, а метка сбрасывается.

Вызовите этот метод перед заполнением буфера последовательностью операций чтения из канала или операций put. Например:

    buf.clear();     // Prepare buffer for reading
    in.read(buf);    // Read data

Этот метод на самом деле не стирает данные в буфере, но называется так, как если бы стирал, поскольку чаще всего используется в ситуациях, когда результат практически тот же.

Переопределяет:
clear в классе Buffer
Возвращает:
Этот буфер
Начиная с:
9

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 при передаче данных из одного места в другое.

Переопределяет:
flip в классе Buffer
Возвращает:
Этот буфер
С версии:
9

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
Возвращает:
Этот буфер
С версии:
9

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

public abstract boolean isDirect()
Определяет, является ли этот буфер float прямым.
Определено в:
isDirect в классе Buffer
Возвращает:
true тогда и только тогда, когда этот буфер является прямым

toString

public String toString()
Возвращает строку с кратким описанием состояния этого буфера.
Переопределяет:
toString в классе Object
Возвращает:
Строка с кратким описанием

hashCode

public int hashCode()
Возвращает текущий хеш-код этого буфера.

Хеш-код буфера float зависит только от оставшихся в нём элементов, то есть от элементов, начиная с position() и заканчивая элементом с индексом limit() - 1 включительно.

Поскольку хеш-коды буферов зависят от их содержимого, не рекомендуется использовать буферы в качестве ключей в хеш-таблицах или аналогичных структурах данных, если не известно, что их содержимое не изменится.

Переопределяет:
hashCode в классе Object
Возвращает:
Текущий хеш-код этого буфера
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

equals

public boolean equals(Object ob)
Определяет, равен ли этот буфер другому объекту.

Два буфера float равны тогда и только тогда, когда

  1. они имеют один и тот же тип элементов;

  2. в них осталось одинаковое число элементов;

  3. две последовательности оставшихся элементов, рассматриваемые независимо от их начальных позиций, равны поэлементно. Этот метод считает два элемента float a и b равными, если (a == b) || (Float.isNaN(a) && Float.isNaN(b)). Значения -0.0 и +0.0 считаются равными, в отличие от Float.equals(Object).

Буфер float не равен объекту любого другого типа.

Переопределяет:
equals в классе Object
Параметры:
ob — объект, с которым сравнивается этот буфер
Возвращает:
true тогда и только тогда, когда этот буфер равен заданному объекту
См. также:
  • Object.hashCode()
  • HashMap

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 на момент создания представления.

Возвращает:
Порядок байтов этого буфера

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API