Spec-Zone.ru › OpenJDK 8

Класс FloatBuffer

  • java.lang.Object
    • java.nio.Buffer
      • java.nio.FloatBuffer
Все реализованные интерфейсы:
Comparable<FloatBuffer>

public abstract class FloatBuffer
extends Buffer
implements Comparable<FloatBuffer>

Буфер с плавающей точкой.

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

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

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

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

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

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

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

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

С тех пор:
1.4

Методы

Модификатор и тип Метод и описание
static FloatBuffer allocate(int capacity)

Выделяет новый буфер с плавающей точкой.

float[] array()

Возвращает массив с плавающей точкой, на котором основан этот буфер (необязательная операция).

int arrayOffset()

Возвращает смещение в массиве, на котором основан этот буфер, первого элемента буфера (необязательная операция).

abstract FloatBuffer asReadOnlyBuffer()

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

abstract FloatBuffer compact()

Уплотняет этот буфер (необязательная операция).

int compareTo(FloatBuffer that)

Сравнивает этот буфер с другим.

abstract FloatBuffer duplicate()

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

boolean equals(Object ob)

Определяет, равен ли этот буфер другому объекту.

abstract float get()

Относительный метод get.

FloatBuffer get(float[] dst)

Относительный метод get для блоков данных.

FloatBuffer get(float[] dst, int offset, int length)

Относительный метод get для блоков данных.

abstract float get(int index)

Абсолютный метод get.

boolean hasArray()

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

int hashCode()

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

abstract boolean isDirect()

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

abstract ByteOrder order()

Получает порядок байтов этого буфера.

abstract FloatBuffer put(float f)

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

FloatBuffer put(float[] src)

Относительный метод put для блоков данных (необязательная операция).

FloatBuffer put(float[] src, int offset, int length)

Относительный метод put для блоков данных (необязательная операция).

FloatBuffer put(FloatBuffer src)

Относительный метод put для блоков данных (необязательная операция).

abstract FloatBuffer put(int index, float f)

Абсолютный метод put (необязательная операция).

abstract FloatBuffer slice()

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

String toString()

Возвращает строку, обобщающую состояние этого буфера.

static FloatBuffer wrap(float[] array)

Оборачивает массив с плавающей точкой в буфер.

static FloatBuffer wrap(float[] array, int offset, int length)

Оборачивает массив с плавающей точкой в буфер.

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

capacity, clear, flip, hasRemaining, isReadOnly, limit, limit, mark, position, position, remaining, reset, rewind

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

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

Методы

allocate

public static FloatBuffer allocate(int capacity)

Выделяет новый буфер с плавающей запятой.

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

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

wrap

public static FloatBuffer wrap(float[] array,
                               int offset,
                               int length)

Оборачивает массив чисел с плавающей запятой в буфер.

Новый буфер будет поддерживаться заданным массивом чисел с плавающей запятой; другими словами, изменения в буфере приведут к изменениям в массиве и наоборот. Емкость нового буфера будет array.length, его положение будет offset, его предел будет offset + length, а его метка — неопределённой. Его 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, его положение — нулевым, а метка — неопределённой. Его backing array будет заданным массивом, а его array offset> — нулевым.

Параметры:
array - Массив, который будет поддерживать этот буфер
Возвращает:
Новый буфер с плавающей запятой

slice

public abstract FloatBuffer slice()

Создаёт новый буфер с плавающей запятой, содержащий общий подпоследовательность содержимого этого буфера.

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

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

Возвращает:
Новый буфер с плавающей запятой

duplicate

public abstract FloatBuffer duplicate()

Создаёт новый буфер с плавающей запятой, разделяющий содержимое этого буфера.

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

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

Возвращает:
Новый буфер с плавающей запятой

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)

Относительный метод get для блочной передачи.

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

src.get(a, 0, a.length)
Параметры:
dst - Массив назначения
Возвращает:
Этот буфер
Исключение:
BufferUnderflowException - Если в этом буфере остается меньше length чисел с плавающей запятой

put

public FloatBuffer put(FloatBuffer src)

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

Этот метод передает оставшиеся числа с плавающей запятой из заданного буфера-источника в этот буфер. Если в буфере-источнике остается больше чисел с плавающей запятой, чем в этом буфере, то есть, если 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(float[] src,
                       int offset,
                       int length)

Метод put с относительным объемом (необязательная операция).

Этот метод переносит числа с плавающей точкой из заданного исходного массива в этот буфер. Если чисел с плавающей точкой, которые нужно скопировать из массива, больше, чем остается места в этом буфере, то есть, если length > remaining(), то числа с плавающей точкой не переносятся, и выбрасывается исключение BufferOverflowException.

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

Другими словами, вызов этого метода в форме dst.put(src, off, len) имеет точно такой же эффект, как цикл

for (int i = off; i < off + len; i++)
         dst.put(a[i]);
за исключением того, что он сначала проверяет, достаточно ли места в этом буфере, и потенциально намного эффективнее.
Параметры:
src - массив, из которого должны быть считаны числа с плавающей точкой
offset - смещение в массиве первого числа с плавающей точкой, которое нужно считать; должно быть неотрицательным и не больше array.length
length - количество чисел с плавающей точкой, которые нужно считать из заданного массива; должно быть неотрицательным и не больше array.length - offset
Возвращает:
Этот буфер
Выбрасывает:
BufferOverflowException - если в этом буфере недостаточно места
IndexOutOfBoundsException - если условия предварительной проверки для параметров offset и length не выполняются
ReadOnlyBufferException - если этот буфер только для чтения

put

public final FloatBuffer put(float[] src)

Метод put с относительным объемом (необязательная операция).

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

dst.put(a, 0, a.length)
Параметры:
src - исходный массив
Возвращает:
Этот буфер
Выбрасывает:
BufferOverflowException - если в этом буфере недостаточно места
ReadOnlyBufferException - если этот буфер только для чтения

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 - если этот буфер не поддерживается доступным массивом

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

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

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

compareTo

public int compareTo(FloatBuffer that)

Сравнивает этот буфер с другим.

Два буфера чисел с плавающей точкой сравниваются путем лексикографического сравнения их последовательностей оставшихся элементов без учета начальной позиции каждой последовательности в соответствующем буфере. Пари чисел с плавающей точкой float сравниваются так, как если бы вы вызывали Float.compare(float,float), за исключением того, что -0.0 и 0.0 считаются равными. Float.NaN в этом методе считается равным самому себе и больше всех остальных значений с плавающей точкой (включая Float.POSITIVE_INFINITY).

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

Определено в:
compareTo в интерфейсе Comparable<FloatBuffer>
Параметры:
that - объект для сравнения.
Возвращает:
Отрицательное целое число, ноль или положительное целое число, если этот буфер меньше, равен или больше, чем заданный буфер

order

public abstract ByteOrder order()

Получает порядок байтов этого буфера.

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

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

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

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