Spec-Zone.ru › OpenJDK 21

Класс FloatBuffer

java.lang.Object
java.nio.Buffer
java.nio.FloatBuffer
Все реализуемые интерфейсы:
Comparable<FloatBuffer>
public abstract sealed class FloatBuffer extends Buffer implements Comparable<FloatBuffer>
Буфер с плавающей точкой типа float.

Этот класс определяет четыре категории операций над буферами с плавающей точкой типа float:

  • Абсолютные и относительные методы get и put для чтения и записи отдельных значений типа float;

  • Абсолютные и относительные методы bulk get для передачи непрерывных последовательностей значений типа float из этого буфера в массив;

  • Абсолютные и относительные методы bulk put для передачи непрерывных последовательностей значений типа float из массива типа float или другого буфера типа float в этот буфер;

  • Метод для compacting буфера с плавающей точкой типа float.

Буферы с плавающей точкой типа float могут быть созданы либо с помощью allocation, который выделяет место для содержимого буфера, либо с помощью wrapping существующего массива типа float в буфер, или путём создания представления существующего буфера типа byte.

Как и буфер типа byte, буфер типа float может быть прямым или непрямым. Буфер типа float, созданный с помощью методов класса wrap будет непрямым. Буфер типа float, созданный как представление буфера типа byte, будет прямым только в том случае, если сам буфер типа byte является прямым. Прямой ли буфер типа float можно определить, вызвав метод isDirect.

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

Дополнительные операции

Методы, обозначенные как дополнительные операции, выбрасывают исключение ReadOnlyBufferException, когда вызываются на только для чтения FloatBuffer. Методы array и arrayOffset выбрасывают UnsupportedOperationException, если FloatBuffer не поддерживает доступ к массиву float (независимо от того, является ли FloatBuffer только для чтения).
С:
1.4

Краткое описание методов

Модификатор и тип Метод Описание
static FloatBuffer allocate(int capacity)
Выделяет новый буфер типа float.
final float[] array()
Возвращает массив float, который является источником данных для этого буфера (дополнительная операция).
final int arrayOffset()
Возвращает смещение в массиве, который служит источником данных для этого буфера, от начала первого элемента буфера (дополнительная операция).
abstract FloatBuffer asReadOnlyBuffer()
Создаёт новый, только для чтения буфер типа float, который разделяет содержимое этого буфера.
final FloatBuffer clear()
Очищает этот буфер.
abstract FloatBuffer compact()
Уплотняет этот буфер (дополнительная операция).
int compareTo(FloatBuffer that)
Сравнивает этот буфер с другим.
abstract FloatBuffer duplicate()
Создаёт новый буфер типа float, который разделяет содержимое этого буфера.
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()
Определяет, поддерживает ли этот буфер доступ к массиву float.
int hashCode()
Возвращает текущий хэш-код этого буфера.
abstract boolean isDirect()
Определяет, является ли этот буфер типа float прямым.
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()
Создаёт новый буфер типа float, содержащий фрагмент содержимого этого буфера.
abstract FloatBuffer slice(int index, int length)
Создаёт новый буфер типа float, содержащий фрагмент содержимого этого буфера.
String toString()
Возвращает строку, описывающую состояние этого буфера.
static FloatBuffer wrap(float[] array)
Преобразует массив float в буфер.
static FloatBuffer wrap(float[] array, int offset, int length)
Преобразует массив float в буфер.

Методы, унаследованные от класса java.nio.Buffer

capacity, hasRemaining, isReadOnly, limit, position, remaining

Методы, унаследованные от класса java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

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

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()
Относительный метод get. Читает число с плавающей точкой в текущей позиции буфера и затем увеличивает позицию.
Возвращает:
Число с плавающей точкой в текущей позиции буфера
Исключения:
BufferUnderflowException - Если текущая позиция буфера не меньше его предела

put

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

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

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

get

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

put

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

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

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

get

public FloatBuffer get(float[] dst, int offset, int length)
Относительный метод get для блочных операций.

Этот метод переносит числа с плавающей точкой из этого буфера в заданный массив назначения. Если в буфере остается меньше чисел с плавающей точкой, чем требуется для выполнения запроса, то есть, если 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)
Метод put абсолютного объёма (необязательная операция).

Этот метод копирует числа с плавающей точкой из заданного массива в этот буфер. Позиция этого буфера не изменяется. Вызов этого метода в формате dst.put(index, src) ведет себя точно так же, как вызов:

    dst.put(index, src, 0, src.length);
Параметры:
index - Индекс в этом буфере, с которого будет записано первое число с плавающей точкой; должен быть неотрицательным и меньше limit()
src - Массив, из которого должны быть считаны числа с плавающей точкой
Возвращает:
Этот буфер
Исключение:
IndexOutOfBoundsException - Если index отрицателен, не меньше limit(), или limit() - index < src.length
ReadOnlyBufferException - Если этот буфер только для чтения
C момента:
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 - Новое значение позиции; должно быть неотрицательным и не больше текущего предела
Возвращает:
Этот буфер
C момента:
9

limit

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

mark

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

reset

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

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

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

clear

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

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

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

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

Переопределяет:
clear в классе Buffer
Возвращает:
Этот буфер
C момента:
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
Возвращает:
Этот буфер
C момента:
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
Возвращает:
Этот буфер
C момента:
9

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
Возвращает:
Текущий код хеширования этого буфера
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

equals

public boolean equals(Object ob)
Указывает, равна ли данная буферная структура другому объекту.

Два буфера с плавающей точкой равны тогда и только тогда, когда

  1. Они имеют одинаковый тип элементов,

  2. Они имеют одинаковое количество оставшихся элементов, и

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

Буфер с плавающей точкой не равен никакому другому типу объекта.

Overrides:
equals в классе Object
Parameters:
ob - Объект, с которым нужно сравнить этот буфер
Returns:
true если и только если этот буфер равен заданному объекту
See Also:
  • Object.hashCode()
  • HashMap

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, 2023, 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/21/docs/api/java.base/java/nio/FloatBuffer.html

Spec-Zone.ru

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