Spec-Zone.ru › OpenJDK 24

Класс 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 в буфер, или создавая вид существующего буфера байтов.

Подобно буферу байтов, буфер float может быть прямым или непрямым. Буфер float, созданный с помощью методов wrap этого класса, будет непрямым. Буфер float, созданный как вид буфера байтов, будет прямым только в том случае, если сам буфер байтов является прямым. Можно определить, является ли буфер 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()
Метод относительного получения. Считывает значение с плавающей точкой в текущей позиции буфера, а затем увеличивает позицию.
Возвращает:
Значение с плавающей точкой в текущей позиции буфера
Исключения:
BufferUnderflowException - Если текущая позиция буфера не меньше его предела

put

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

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

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

get

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

put

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

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

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

get

public FloatBuffer get(float[] dst, int offset, int length)
Метод пакетного чтения значений типа float.

Этот метод копирует значения типа 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)
Метод пакетного чтения значений типа float.

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

Этот метод копирует 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.

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

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

Этот метод копирует всё содержимое заданного исходного массива 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()
Очищает этот буфер. Позиция устанавливается в ноль, предел устанавливается на емкость, а метка отбрасывается.

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

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

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

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

flip

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

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

    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()
Перематывает этот буфер. Позиция устанавливается в ноль, а метка отбрасывается.

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

    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()
Определяет, является ли этот буфер с плавающей точкой прямым.
Specified by:
isDirect in class Buffer
Returns:
true, если и только если этот буфер является прямым

toString

public String toString()
Возвращает строку, обобщающую состояние этого буфера.
Overrides:
toString in class Object
Returns:
Строка сводки

hashCode

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

Код хэширования буфера с плавающей точкой зависит только от его оставшихся элементов; то есть от элементов с position() до, и включая, элемент на позиции limit() - 1.

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

Overrides:
hashCode in class Object
Returns:
Текущий код хэширования этого буфера
See Also:
  • 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 in class 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.POSITIVE_INFINITY).

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

Specified by:
compareTo in interface 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, 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/nio/FloatBuffer.html

Spec-Zone.ru

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