Класс 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 |
Выделяет новый буфер с числами двойной точности. |
final double[] |
array() |
Возвращает массив чисел двойной точности, который лежит в основе этого буфера (дополнительная операция). |
final int |
arrayOffset() |
Возвращает смещение в массиве, поддерживающем этот буфер, первого элемента буфера (дополнительная операция). |
abstract DoubleBuffer |
asReadOnlyBuffer() |
Создает новый, только для чтения, буфер с числами двойной точности, который совместно использует содержимое этого буфера. |
final DoubleBuffer |
clear() |
Очищает этот буфер. |
abstract DoubleBuffer |
compact() |
Уплотняет этот буфер (дополнительная операция). |
int |
compareTo |
Сравнивает этот буфер с другим. |
abstract DoubleBuffer |
duplicate() |
Создает новый буфер с числами двойной точности, который совместно использует содержимое этого буфера. |
boolean |
equals |
Указывает, равен ли этот буфер другому объекту. |
final DoubleBuffer |
flip() |
Переворачивает этот буфер. |
abstract double |
get() |
Относительный метод получения. |
DoubleBuffer |
get |
Относительный метод получения массива. |
DoubleBuffer |
get |
Относительный метод получения массива. |
abstract double |
get |
Абсолютный метод получения. |
DoubleBuffer |
get |
Абсолютный метод получения массива. |
DoubleBuffer |
get |
Абсолютный метод получения массива. |
final boolean |
hasArray() |
Указывает, поддерживает ли этот буфер доступный массив чисел двойной точности. |
int |
hashCode() |
Возвращает текущий код хэша этого буфера. |
abstract boolean |
isDirect() |
Указывает, является ли этот буфер с числами двойной точности прямым. |
final DoubleBuffer |
limit |
Устанавливает предел этого буфера. |
final DoubleBuffer |
mark() |
Устанавливает метку этого буфера в его позиции. |
int |
mismatch |
Находит и возвращает относительный индекс первого несовпадения между этим буфером и заданным буфером. |
abstract ByteOrder |
order() |
Возвращает порядок байтов этого буфера. |
final DoubleBuffer |
position |
Устанавливает позицию этого буфера. |
abstract DoubleBuffer |
put |
Относительный метод записи (дополнительная операция). |
final DoubleBuffer |
put |
Относительный метод записи массива (дополнительная операция). |
DoubleBuffer |
put |
Относительный метод записи массива (дополнительная операция). |
abstract DoubleBuffer |
put |
Абсолютный метод записи (дополнительная операция). |
DoubleBuffer |
put |
Абсолютный метод записи массива (дополнительная операция). |
DoubleBuffer |
put |
Абсолютный метод записи массива (дополнительная операция). |
DoubleBuffer |
put |
Абсолютный метод записи массива (дополнительная операция). |
DoubleBuffer |
put |
Относительный метод записи массива (дополнительная операция). |
final DoubleBuffer |
reset() |
Возвращает позицию этого буфера к ранее помеченной позиции. |
final DoubleBuffer |
rewind() |
Перематывает этот буфер. |
abstract DoubleBuffer |
slice() |
Создает новый буфер с числами двойной точности, содержимое которого является общим подпоследовательностью содержимого этого буфера. |
abstract DoubleBuffer |
slice |
Создает новый буфер с числами двойной точности, содержимое которого является общим подпоследовательностью содержимого этого буфера. |
String |
toString() |
Возвращает строку, обобщающую состояние этого буфера. |
static DoubleBuffer |
wrap |
Оборачивает массив чисел двойной точности в буфер. |
static DoubleBuffer |
wrap |
Оборачивает массив чисел двойной точности в буфер. |
Методы, объявленные в классе java.nio.Buffer
capacity, hasRemaining, isReadOnly, limit, position, remaining
Подробное описание методов
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; то есть, изменения в буфере приведут к изменению массива и наоборот. Ёмкость нового буфера будет 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; то есть, изменения в буфере приведут к изменению массива и наоборот. Ёмкость и предел нового буфера будут array.length, его позиция — нулём, его метка — неопределённой, а порядок байтов — native order базового оборудования. Его backing array будет заданным массивом, а его array offset — нулём.
- Параметры:
-
array- массив, который будет поддерживать этот буфер - Возвращает:
- Новый буфер двойной буферизации
slice
public abstract DoubleBuffer slice()
Содержимое нового буфера начнётся с текущей позиции этого буфера. Изменения в содержимом этого буфера будут видны в новом буфере, и наоборот; позиции, пределы и метки двух буферов будут независимы.
Позиция нового буфера будет равна нулю, его ёмкость и предел — количеству double, оставшимся в этом буфере, его метка будет неопределённой, а порядок байтов — идентичным порядку этого буфера. Новый буфер будет прямым, если и только если этот буфер является прямым, и он будет только для чтения, если и только если этот буфер только для чтения.
- Определено в:
-
sliceв классеBuffer - Возвращает:
- Новый буфер double
slice
public abstract DoubleBuffer slice(int index, int length)
Содержимое нового буфера начнётся с позиции index в этом буфере и будет содержать length элементов. Изменения в содержимом этого буфера будут видны в новом буфере, и наоборот; позиции, пределы и метки двух буферов будут независимы.
Позиция нового буфера будет равна нулю, его ёмкость и предел — length, его метка — неопределённой, а порядок байтов — идентичным порядку этого буфера. Новый буфер будет прямым, если и только если этот буфер является прямым, и он будет только для чтения, если и только если этот буфер только для чтения.
- Определено в:
-
sliceв классеBuffer - Параметры:
-
index- позиция в этом буфере, с которой начнётся содержимое нового буфера; должно быть неотрицательным и не превышатьlimit() -
length- количество элементов, которое будет содержать новый буфер; должно быть неотрицательным и не превышатьlimit() - index - Возвращает:
- Новый буфер
- Исключения:
-
IndexOutOfBoundsException- еслиindexотрицательно или большеlimit(),lengthотрицательно илиlength > limit() - index - С:
- 13
duplicate
public abstract DoubleBuffer duplicate()
Содержимое нового буфера будет таким же, как у этого буфера. Изменения в содержимом этого буфера будут видны в новом буфере, и наоборот; позиции, пределы и метки двух буферов будут независимы.
Ёмкость, предел, позиция, метка и порядок байтов нового буфера будут идентичны таковым у этого буфера. Новый буфер будет прямым, если и только если этот буфер является прямым, и он будет только для чтения, если и только если этот буфер только для чтения.
- Определено в:
-
duplicateв классеBuffer - Возвращает:
- Новый буфер double
asReadOnlyBuffer
public abstract DoubleBuffer asReadOnlyBuffer()
Содержимое нового буфера будет таким же, как у этого буфера. Изменения в содержимом этого буфера будут видны в новом буфере; однако сам новый буфер будет только для чтения и не позволит изменять совмещённое содержимое. Позиции, пределы и метки двух буферов будут независимыми.
Ёмкость, предел, позиция, метка и порядок байтов нового буфера будут идентичны таковым у этого буфера.
Если этот буфер сам по себе только для чтения, то этот метод ведёт себя точно так же, как метод duplicate.
- Возвращает:
- Новый буфер double только для чтения
get
public abstract double get()
- Возвращает:
- double в текущей позиции буфера
- Исключения:
-
BufferUnderflowException- если текущая позиция буфера не меньше его предела
put
public abstract DoubleBuffer put(double d)
Записывает заданное double в этот буфер в текущей позиции и затем увеличивает позицию.
- Параметры:
-
d- double для записи - Возвращает:
- Этот буфер
- Исключения:
-
BufferOverflowException- если текущая позиция буфера не меньше его предела -
ReadOnlyBufferException- если этот буфер только для чтения
get
public abstract double get(int index)
- Параметры:
-
index- индекс, из которого будет считано double - Возвращает:
- double по заданному индексу
- Исключения:
-
IndexOutOfBoundsException- еслиindexотрицателен или не меньше предела буфера
put
public abstract DoubleBuffer put(int index, double d)
Записывает заданное 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();
- Параметры:
-
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)
Этот метод копирует 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)
Этот метод копирует 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()
Если этот метод возвращает true, то методы array и arrayOffset могут быть безопасно вызваны.
- Определено в:
-
hasArrayв классеBuffer - Возвращает:
-
trueесли и только если этот буфер поддерживается массивом и не является только для чтения
array
public final double[] array()
Изменения в содержимом этого буфера приведут к изменению содержимого возвращаемого массива, и наоборот.
Вызовите метод 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()
- Определено в:
-
isDirectв классеBuffer - Возвращает:
-
trueесли и только если этот буфер является прямым
toString
public String toString()
- Переопределяет:
-
toStringв классеObject - Возвращает:
- Строка резюме
hashCode
public int hashCode()
Хэш-код буфера с плавающей точкой зависит только от его оставшихся элементов; то есть, от элементов с position() до и включая элемент по индексу limit() - 1.
Поскольку хэш-коды буфера зависят от содержимого, не рекомендуется использовать буферы в качестве ключей в хэш-картах или аналогичных структурах данных, если неизвестно, что их содержимое не будет изменяться.
- Overrides:
-
hashCodeв классеObject - Возвращает:
- Текущий хэш-код этого буфера
- См. также:
equals
public boolean equals(Object ob)
Два буфера с плавающей точкой равны тогда и только тогда, когда
Они имеют одинаковый тип элементов,
У них одинаковое количество оставшихся элементов, и
Две последовательности оставшихся элементов, рассматриваемые независимо от их начальных позиций, точечно равны. Этот метод считает два элемента типа double
aиbравными, если(a == b) || (Double.isNaN(a) && Double.isNaN(b)). Значения-0.0и+0.0считаются равными, в отличие отDouble.equals(Object).
Буфер с плавающей точкой не равен ни одному объекту другого типа.
- Overrides:
-
equalsв классеObject - Параметры:
-
ob- Объект, с которым будет сравниваться этот буфер - Возвращает:
-
trueтогда и только тогда, когда этот буфер равен заданному объекту - См. также:
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