Spec-Zone.ru › OpenJDK 25

Класс FloatBuffer

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

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

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

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

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

  • Метод для compacting буфера float.

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

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

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

Необязательные операции

Методы, указанные как необязательные операции, при вызове для буфера только для чтения FloatBuffer выбрасывают исключение ReadOnlyBufferException. Методы 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 в буфер.

Методы, объявленные в классе Buffer

capacity, hasRemaining, isReadOnly, limit, position, remaining

Методы, объявленные в классе Object

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

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

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 - буфер байтов для проверки на наличие несовпадений с этим буфером
Возвращает:
Относительный индекс первого несовпадения между этим и заданным буфером либо -1, если несовпадений нет.
Начиная с версии:
11

order

public abstract ByteOrder order()
Возвращает порядок байтов этого буфера.

Порядок байтов буфера типа float, созданного выделением памяти или оберткой существующего массива float, соответствует native order базового оборудования. Порядок байтов буфера типа float, созданного как представление буфера байтов, соответствует порядку байтов буфера байтов на момент создания представления.

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, способы обхода проблем и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/nio/FloatBuffer.html

Spec-Zone.ru

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