Spec-Zone.ru › OpenJDK 21

Класс DoubleBuffer

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

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

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

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

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

  • Метод для compacting буфера с числами двойной точности.

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

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

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

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

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

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

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

Методы, объявленные в классе 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 - если ёмкость — отрицательное целое число

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.
Возвращает:
Новый буфер двойной буферизации
Исключения:
IndexOutOfBoundsException - если условия для offset и length параметров не соблюдены

wrap

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

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

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

slice

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

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

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

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

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

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

asReadOnlyBuffer

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

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

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

Если этот буфер сам по себе только для чтения, то этот метод ведёт себя точно так же, как метод 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)
Метод относительного объёмного извлечения.

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

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

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

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

get

public DoubleBuffer get(double[] dst)
Метод относительного объёмного извлечения.

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

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

get

public DoubleBuffer get(int index, double[] dst, int offset, int length)
Метод абсолютного объёмного извлечения.

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

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

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

get

public DoubleBuffer get(int index, double[] dst)
Метод абсолютного объёмного извлечения.

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

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

put

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

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

В противном случае, этот метод копирует n = src.remaining() значений типа double из заданного буфера в этот буфер, начиная с текущей позиции каждого буфера. Позиции обоих буферов затем увеличиваются на n.

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

    while (src.hasRemaining())
        dst.put(src.get());
за исключением того, что он сначала проверяет, достаточно ли места в этом буфере, и потенциально намного эффективнее. Если этот буфер и буфер источника используют один и тот же массив или память, результат будет таким, как если бы элементы источника сначала были скопированы во временное местоположение перед записью в этот буфер.
Параметры:
src - Буфер источника, из которого должны быть считываются значения типа double; не должен быть этим буфером
Возвращает:
Этот буфер
Исключения:
BufferOverflowException - Если в этом буфере недостаточно места для оставшихся значений типа double в буфере источника
IllegalArgumentException - Если буфер источника — это этот буфер
ReadOnlyBufferException - Если этот буфер только для чтения

put

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

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

put

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

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

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

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

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

put

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

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

Double между текущей позицией буфера и его пределом, если таковые имеются, копируются в начало буфера. То есть double с индексом p = position() копируется в индекс ноль, double с индексом p + 1 копируется в индекс один, и так далее, пока double с индексом limit() - 1 копируется в индекс n = limit() - 1 - p. Позиция буфера затем устанавливается в n+1, а его предел устанавливается в его емкость. Метка, если определена, отбрасывается.

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

Возвращает:
Этот буфер
Исключения:
ReadOnlyBufferException - Если этот буфер является только для чтения

isDirect

public abstract boolean isDirect()
Указывает, является ли этот буфер double прямым.
Определено в:
isDirect в классе Buffer
Возвращает:
true если и только если этот буфер является прямым

toString

public String toString()
Возвращает строку, обобщающую состояние этого буфера.
Переопределяет:
toString в классе Object
Возвращает:
Строка резюме

hashCode

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

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

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

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

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

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

compareTo

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

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

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

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

mismatch

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

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

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

order

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

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

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

© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/nio/DoubleBuffer.html

Spec-Zone.ru

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