Spec-Zone.ru › OpenJDK 24

Класс DoubleBuffer

java.lang.Object
java.nio.Buffer
java.nio.DoubleBuffer
Все реализуемые интерфейсы:
Comparable<DoubleBuffer>
public abstract sealed class DoubleBuffer extends Buffer implements Comparable<DoubleBuffer>
Буфер для хранения значений типа double.

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

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

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

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

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

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

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

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

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

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

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

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

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

capacity, hasRemaining, isReadOnly, limit, position, remaining

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

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

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

allocate

public static DoubleBuffer allocate(int capacity)
Выделяет новый буфер двойной точности.

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

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

wrap

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

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

Параметры:
array - Массив, который будет основой нового буфера
offset - Смещение подмассива для использования; должно быть неотрицательным и не больше array.length. Позиция нового буфера будет установлена в это значение.
length - Длина подмассива для использования; должно быть неотрицательным и не больше array.length - offset. Предел нового буфера будет установлен в offset + length.
Возвращает:
Новый буфер double
Исключения:
IndexOutOfBoundsException - Если условия на offset и length параметры не выполняются

wrap

public static DoubleBuffer wrap(double[] array)
Оборачивает массив double в буфер.

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

Параметры:
array - Массив, который будет основой этого буфера
Возвращает:
Новый буфер double

slice

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

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

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

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

slice

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

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

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

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

duplicate

public abstract DoubleBuffer duplicate()
Создаёт новый буфер двойной точности, который совместно использует содержимое этого буфера.

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

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

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

asReadOnlyBuffer

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

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

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

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

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

get

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

put

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

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

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

get

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

put

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

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

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

get

public DoubleBuffer get(double[] 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 DoubleBuffer get(double[] dst)
Относительный групповой метод get.

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

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

get

public DoubleBuffer get(int index, double[] dst, int offset, int length)
Абсолютный групповой метод get.

Этот метод переносит 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 DoubleBuffer get(int index, double[] dst)
Абсолютный групповой метод get.

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

    src.get(index, dst, 0, dst.length)
Параметры:
index - Индекс в этом буфере, с которого будет считано первое число с плавающей точкой двойной точности; должно быть неотрицательным и меньше, чем limit()
dst - Целевой массив
Возвращает:
Этот буфер
Исключения:
IndexOutOfBoundsException - Если index отрицательно, не меньше, чем limit(), или limit() - index < dst.length
С версии:
13

put

public DoubleBuffer put(DoubleBuffer 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 DoubleBuffer put(int index, DoubleBuffer src, int offset, int length)
Абсолютный групповой метод put (необязательная операция).

Этот метод переносит 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 DoubleBuffer put(double[] 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(src[i]);
за исключением того, что он сначала проверяет наличие достаточного места в этом буфере, и он потенциально намного эффективнее.
Параметры:
src - Массив, из которого должны быть считаны числа с плавающей точкой двойной точности
offset - Смещение в массиве первого числа с плавающей точкой двойной точности, которое должно быть считано; должно быть неотрицательным и не больше, чем src.length
length - Количество чисел с плавающей точкой двойной точности, которые должны быть считаны из указанного массива; должно быть неотрицательным и не больше, чем src.length - offset
Возвращает:
Этот буфер
Исключения:
BufferOverflowException - Если в этом буфере недостаточно места
IndexOutOfBoundsException - Если предварительные условия для параметров offset и length не выполняются
ReadOnlyBufferException - Если этот буфер доступен только для чтения

put

public final DoubleBuffer put(double[] src)
Метод put для относительного копирования содержимого массива (необязательная операция).

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

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

put

public DoubleBuffer put(int index, double[] src, int offset, int length)
Метод put для абсолютного копирования содержимого массива (необязательная операция).

Этот метод копирует length double из заданного массива, начиная с заданного смещения в массиве и заданного индекса в этом буфере. Положение этого буфера не изменяется.

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

    for (int i = offset, j = index; i < offset + length; i++, j++)
        dst.put(j, src[i]);
Параметры:
index - Индекс в этом буфере, с которого будет записан первый double; должен быть неотрицательным и меньше limit()
src - Массив, из которого необходимо прочитать double
offset - Смещение в массиве первого double для чтения; должно быть неотрицательным и меньше src.length
length - Количество double, которые необходимо прочитать из заданного массива; должно быть неотрицательным и не больше меньшего из limit() - index и src.length - offset
Возвращает:
Этот буфер
Исключение:
IndexOutOfBoundsException - Если условия на параметры index, offset и length не соблюдаются
ReadOnlyBufferException - Если этот буфер является только для чтения
С момента:
13

put

public DoubleBuffer put(int index, double[] src)
Метод put для абсолютного копирования содержимого массива (необязательная операция).

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

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

hasArray

public final boolean hasArray()
Указывает, поддерживается ли этот буфер доступным массивом double.

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

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

array

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

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

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

Указано в:
array в классе Buffer
Возвращает:
Массив, который поддерживает этот буфер
Исключение:
ReadOnlyBufferException - Если этот буфер поддерживается массивом, но является только для чтения
UnsupportedOperationException - Если этот буфер не поддерживается доступным массивом

arrayOffset

public final int arrayOffset()
Возвращает смещение в поддерживающем массиве этого буфера первого элемента буфера (необязательная операция).

Если этот буфер поддерживается массивом, то позиция буфера p соответствует индексу массива p + arrayOffset().

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

Указано в:
arrayOffset в классе Buffer
Возвращает:
Смещение в массиве этого буфера первого элемента буфера
Исключение:
ReadOnlyBufferException - Если этот буфер поддерживается массивом, но является только для чтения
UnsupportedOperationException - Если этот буфер не поддерживается доступным массивом

position

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

limit

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

mark

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

reset

public final DoubleBuffer reset()
Возвращает позицию этого буфера к ранее помеченной позиции.

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

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

clear

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

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

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

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

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

flip

public final DoubleBuffer 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 DoubleBuffer 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 DoubleBuffer 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. Две последовательности оставшихся элементов, рассматриваемые независимо от их начальных позиций, точечно равны. Этот метод рассматривает два элемента типа double a и b как равные, если (a == b) || (Double.isNaN(a) && Double.isNaN(b)). Значения -0.0 и +0.0 считаются равными, в отличие от Double.equals(Object).

Буфер двойных значений не равен ни одному другому типу объекта.

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

compareTo

public int compareTo(DoubleBuffer that)
Сравнивает этот буфер с другим.

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

Буфер double не сравним ни с каким другим типом объекта.

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

mismatch

public int mismatch(DoubleBuffer that)
Находит и возвращает относительный индекс первого расхождения между этим буфером и заданным буфером. Индекс относительный к position каждого буфера и будет в диапазоне от 0 (включительно) до меньшего из remaining элементов в каждом буфере (исключительно).

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

Параметры:
that - Буфер байтов, который проверяется на расхождение с этим буфером
Возвращает:
Относительный индекс первого расхождения между этим и заданным буфером, в противном случае -1, если расхождения нет.
С тех пор:
11

order

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

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

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

© 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/DoubleBuffer.html

Spec-Zone.ru

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