Класс LongBuffer
- Все реализуемые интерфейсы:
Comparable<LongBuffer>
public abstract sealed class LongBuffer extends Buffer implements Comparable<LongBuffer>
Этот класс определяет четыре категории операций с буферами long:
Абсолютные и относительные методы
getиput, которые считывают и записывают отдельные значения long;Абсолютные и относительные методы
bulk get, которые передают последовательности значений long из этого буфера в массив;Абсолютные и относительные методы
bulk put, которые передают последовательности значений long из массива long или другого буфера long в этот буфер;Метод для
compactingбуфера long.
Буферы long можно создать с помощью метода allocation, выделяющего память для содержимого буфера, путем wrapping существующего массива long в буфер или создав представление существующего буфера byte.
Как и буфер byte, буфер long бывает прямым или непрямым. Буфер long, созданный с помощью методов wrap этого класса, будет непрямым. Буфер long, созданный как представление буфера byte, будет прямым тогда и только тогда, когда сам буфер byte является прямым. Определить, является ли буфер long прямым, можно вызвав метод isDirect.
Методы этого класса, которые не возвращают иного значения, определены так, чтобы возвращать буфер, для которого они вызваны. Это позволяет объединять вызовы методов в цепочки.
Необязательные операции
Методы, определенные как необязательные операции, при вызове для буфера LongBuffer, доступного только для чтения, выбрасывают исключение ReadOnlyBufferException. Методы array и arrayOffset выбрасывают исключение UnsupportedOperationException, если буфер LongBuffer не поддерживается доступным массивом long (независимо от того, доступен ли буфер LongBuffer только для чтения).- С версии:
- 1.4
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static LongBuffer |
allocate |
Выделяет новый буфер long. |
final long[] |
array() |
Возвращает массив long, используемый этим буфером в качестве хранилища (необязательная операция). |
final int |
arrayOffset() |
Возвращает смещение в массиве, используемом этим буфером в качестве хранилища, до первого элемента буфера (необязательная операция). |
abstract LongBuffer |
asReadOnlyBuffer() |
Создает новый буфер long, доступный только для чтения и совместно использующий содержимое этого буфера. |
final LongBuffer |
clear() |
Очищает этот буфер. |
abstract LongBuffer |
compact() |
Компактирует этот буфер (необязательная операция). |
int |
compareTo |
Сравнивает этот буфер с другим. |
abstract LongBuffer |
duplicate() |
Создает новый буфер long, совместно использующий содержимое этого буфера. |
boolean |
equals |
Определяет, равен ли этот буфер другому объекту. |
final LongBuffer |
flip() |
Переворачивает этот буфер. |
abstract long |
get() |
Относительный метод get. |
abstract long |
get |
Абсолютный метод get. |
LongBuffer |
get |
Абсолютный пакетный метод get. |
LongBuffer |
get |
Абсолютный пакетный метод get. |
LongBuffer |
get |
Относительный пакетный метод get. |
LongBuffer |
get |
Относительный пакетный метод get. |
final boolean |
hasArray() |
Определяет, поддерживается ли этот буфер доступным массивом long. |
int |
hashCode() |
Возвращает текущий хеш-код этого буфера. |
abstract boolean |
isDirect() |
Определяет, является ли этот буфер long прямым. |
final LongBuffer |
limit |
Устанавливает предел этого буфера. |
final LongBuffer |
mark() |
Устанавливает отметку этого буфера в текущей позиции. |
int |
mismatch |
Находит и возвращает относительный индекс первого несовпадения между этим буфером и заданным буфером. |
abstract ByteOrder |
order() |
Возвращает порядок байтов этого буфера. |
final LongBuffer |
position |
Устанавливает позицию этого буфера. |
abstract LongBuffer |
put |
Абсолютный метод put (необязательная операция). |
LongBuffer |
put |
Абсолютный пакетный метод put (необязательная операция). |
LongBuffer |
put |
Абсолютный пакетный метод put (необязательная операция). |
LongBuffer |
put |
Абсолютный пакетный метод put (необязательная операция). |
abstract LongBuffer |
put |
Относительный метод put (необязательная операция). |
final LongBuffer |
put |
Относительный пакетный метод put (необязательная операция). |
LongBuffer |
put |
Относительный пакетный метод put (необязательная операция). |
LongBuffer |
put |
Относительный пакетный метод put (необязательная операция). |
final LongBuffer |
reset() |
Возвращает позицию буфера к ранее установленной отметке. |
final LongBuffer |
rewind() |
Перематывает этот буфер. |
abstract LongBuffer |
slice() |
Создает новый буфер long, содержимое которого представляет собой совместно используемую подпоследовательность содержимого этого буфера. |
abstract LongBuffer |
slice |
Создает новый буфер long, содержимое которого представляет собой совместно используемую подпоследовательность содержимого этого буфера. |
String |
toString() |
Возвращает строку, описывающую состояние этого буфера. |
static LongBuffer |
wrap |
Оборачивает массив long в буфер. |
static LongBuffer |
wrap |
Оборачивает массив long в буфер. |
Методы, объявленные в классе Buffer
capacity, hasRemaining, isReadOnly, limit, position, remaining | Модификатор и тип | Метод | Описание |
|---|---|---|
final int |
capacity() |
Возвращает емкость этого буфера. |
final boolean |
hasRemaining() |
Определяет, есть ли элементы между текущей позицией и пределом. |
abstract boolean |
isReadOnly() |
Определяет, доступен ли этот буфер только для чтения. |
final int |
limit() |
Возвращает предел этого буфера. |
final int |
position() |
Возвращает позицию этого буфера. |
final int |
remaining() |
Возвращает количество элементов между текущей позицией и пределом. |
Методы, объявленные в классе Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация устарела и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание методов
allocate
public static LongBuffer allocate(int capacity)
Позиция нового буфера будет равна нулю, его предел будет равен его емкости, его метка не будет определена, все его элементы будут инициализированы нулем, а порядок байтов будет соответствовать native order базового оборудования. У него будет backing array, а его array offset будет равен нулю.
- Параметры:
-
capacity— емкость нового буфера в значениях типа long - Возвращает:
- Новый буфер long
- Выбрасывает:
-
IllegalArgumentException— еслиcapacityявляется отрицательным целым числом
wrap
public static LongBuffer wrap(long[] array, int offset, int length)
Новый буфер будет основан на заданном массиве long; то есть изменения буфера приведут к изменению массива и наоборот. Емкость нового буфера будет array.length, его позиция будет offset, его предел будет offset + length, его метка не будет определена, а порядок байтов будет соответствовать native order базового оборудования. Его backing array будет заданным массивом, а его array offset будет равен нулю.
- Параметры:
-
array— массив, на основе которого будет создан новый буфер -
offset— смещение используемого подмассива; должно быть неотрицательным и не превышатьarray.length. Позиция нового буфера будет установлена в это значение. -
length— длина используемого подмассива; должна быть неотрицательной и не превышатьarray.length - offset. Предел нового буфера будет установлен вoffset + length. - Возвращает:
- Новый буфер long
- Выбрасывает:
-
IndexOutOfBoundsException— если не выполняются предварительные условия для параметровoffsetиlength
wrap
public static LongBuffer wrap(long[] array)
Новый буфер будет основан на заданном массиве long; то есть изменения буфера приведут к изменению массива и наоборот. Емкость и предел нового буфера будут равны array.length, его позиция будет равна нулю, его метка не будет определена, а порядок байтов будет соответствовать native order базового оборудования. Его backing array будет заданным массивом, а его array offset будет равен нулю.
- Параметры:
-
array— массив, на основе которого будет создан этот буфер - Возвращает:
- Новый буфер long
slice
public abstract LongBuffer slice()
Содержимое нового буфера будет начинаться с текущей позиции этого буфера. Изменения содержимого этого буфера будут видны в новом буфере и наоборот; значения позиции, предела и метки двух буферов будут независимы друг от друга.
Позиция нового буфера будет равна нулю, его емкость и предел будут равны количеству значений типа long, оставшихся в этом буфере, его метка не будет определена, а порядок байтов будет совпадать с порядком байтов этого буфера. Новый буфер будет прямым тогда и только тогда, когда этот буфер является прямым, и будет доступен только для чтения тогда и только тогда, когда этот буфер доступен только для чтения.
slice
public abstract LongBuffer 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 LongBuffer duplicate()
Содержимое нового буфера будет таким же, как у этого буфера. Изменения содержимого этого буфера будут видны в новом буфере и наоборот; значения позиции, предела и метки двух буферов будут независимы друг от друга.
Емкость, предел, позиция, значение метки и порядок байтов нового буфера будут такими же, как у этого буфера. Новый буфер будет прямым тогда и только тогда, когда этот буфер является прямым, и будет доступен только для чтения тогда и только тогда, когда этот буфер доступен только для чтения.
asReadOnlyBuffer
public abstract LongBuffer asReadOnlyBuffer()
Содержимое нового буфера будет таким же, как у этого буфера. Изменения содержимого этого буфера будут видны в новом буфере; однако сам новый буфер будет доступен только для чтения и не позволит изменять общее содержимое. Значения позиции, предела и метки двух буферов будут независимы друг от друга.
Емкость, предел, позиция, значение метки и порядок байтов нового буфера будут такими же, как у этого буфера.
Если этот буфер сам доступен только для чтения, данный метод работает в точности так же, как метод duplicate.
- Возвращает:
- Новый буфер long, доступный только для чтения
get
public abstract long get()
- Возвращает:
- Значение типа long в текущей позиции буфера
- Выбрасывает:
-
BufferUnderflowException— если текущая позиция буфера не меньше его предела
put
public abstract LongBuffer put(long l)
Записывает заданное значение типа long в этот буфер в текущей позиции, а затем увеличивает позицию.
- Параметры:
-
l— значение типа long для записи - Возвращает:
- Этот буфер
- Выбрасывает:
-
BufferOverflowException— если текущая позиция этого буфера не меньше его предела -
ReadOnlyBufferException— если этот буфер доступен только для чтения
get
public abstract long get(int index)
- Параметры:
-
index— индекс, по которому будет считано значение типа long - Возвращает:
- Значение типа long по заданному индексу
- Выбрасывает:
-
IndexOutOfBoundsException— еслиindexотрицательно или не меньше предела буфера
put
public abstract LongBuffer put(int index, long l)
Записывает заданное значение типа long в этот буфер по заданному индексу.
- Параметры:
-
index— индекс, по которому будет записано значение типа long -
l— значение типа long для записи - Возвращает:
- Этот буфер
- Выбрасывает:
-
IndexOutOfBoundsException— еслиindexотрицательно или не меньше предела буфера -
ReadOnlyBufferException— если этот буфер доступен только для чтения
get
public LongBuffer get(long[] dst, int offset, int length)
Этот метод переносит значения типа long из этого буфера в заданный массив назначения. Если в буфере осталось меньше значений типа long, чем требуется для выполнения запроса, то есть если length > remaining(), значения не переносятся и выбрасывается исключение BufferUnderflowException.
В противном случае этот метод копирует length значений типа long из этого буфера в заданный массив, начиная с текущей позиции этого буфера и заданного смещения в массиве. Затем позиция этого буфера увеличивается на length.
Иными словами, вызов этого метода в форме src.get(dst, off, len) имеет в точности тот же эффект, что и цикл
for (int i = off; i < off + len; i++)
dst[i] = src.get();
- Параметры:
-
dst— массив, в который будут записаны значения типа long -
offset— смещение в массиве, с которого будет записано первое значение типа long; должно быть неотрицательным и не превышатьdst.length -
length— максимальное количество значений типа long для записи в заданный массив; должно быть неотрицательным и не превышатьdst.length - offset - Возвращает:
- Этот буфер
- Выбрасывает:
-
BufferUnderflowException— если в этом буфере осталось меньшеlengthзначений типа long -
IndexOutOfBoundsException— если не выполняются предварительные условия для параметровoffsetиlength
get
public LongBuffer get(long[] dst)
Этот метод переносит значения типа long из этого буфера в заданный массив назначения. Вызов этого метода в форме src.get(a) работает точно так же, как вызов
src.get(a, 0, a.length)
- Параметры:
-
dst— массив назначения - Возвращает:
- Этот буфер
- Выбрасывает:
-
BufferUnderflowException— если в этом буфере осталось меньшеlengthзначений типа long
get
public LongBuffer get(int index, long[] dst, int offset, int length)
Этот метод переносит length значений типа long из этого буфера в заданный массив, начиная с заданного индекса в этом буфере и заданного смещения в массиве. Позиция этого буфера не изменяется.
Вызов этого метода в форме src.get(index, dst, offset, length) имеет в точности тот же эффект, что и следующий цикл, за исключением того, что сначала проверяется согласованность заданных параметров, а сам метод потенциально намного эффективнее:
for (int i = offset, j = index; i < offset + length; i++, j++)
dst[i] = src.get(j);
- Параметры:
-
index— индекс в этом буфере, с которого будет считано первое значение типа long; должен быть неотрицательным и меньшеlimit() -
dst— массив назначения -
offset— смещение в массиве, с которого будет записано первое значение типа long; должно быть неотрицательным и меньшеdst.length -
length— количество значений типа long для записи в заданный массив; должно быть неотрицательным и не превышать меньшее из значенийlimit() - indexиdst.length - offset - Возвращает:
- Этот буфер
- Выбрасывает:
-
IndexOutOfBoundsException— если не выполняются предварительные условия для параметровindex,offsetиlength - Начиная с:
- 13
get
public LongBuffer get(int index, long[] dst)
Этот метод переносит значения типа long из этого буфера в заданный массив назначения. Позиция этого буфера не изменяется. Вызов этого метода в форме src.get(index, dst) работает точно так же, как вызов:
src.get(index, dst, 0, dst.length)
- Параметры:
-
index— индекс в этом буфере, с которого будет считано первое значение типа long; должен быть неотрицательным и меньшеlimit() -
dst— массив назначения - Возвращает:
- Этот буфер
- Выбрасывает:
-
IndexOutOfBoundsException— еслиindexотрицательно, не меньшеlimit()илиlimit() - index < dst.length - Начиная с:
- 13
put
public LongBuffer put(LongBuffer src)
Этот метод переносит значения типа long, оставшиеся в заданном исходном буфере, в этот буфер. Если в исходном буфере осталось больше значений типа long, чем в этом буфере, то есть если src.remaining() > remaining(), значения не переносятся и выбрасывается исключение BufferOverflowException.
В противном случае этот метод копирует n = src.remaining() значений типа long из заданного буфера в этот буфер, начиная с текущей позиции каждого буфера. Затем позиции обоих буферов увеличиваются на n.
Иными словами, вызов этого метода в форме dst.put(src) имеет в точности тот же эффект, что и цикл
while (src.hasRemaining())
dst.put(src.get());
- Параметры:
-
src— исходный буфер, из которого будут считываться значения типа long; не должен совпадать с этим буфером - Возвращает:
- Этот буфер
- Выбрасывает:
-
BufferOverflowException— если в этом буфере недостаточно места для значений типа long, оставшихся в исходном буфере -
IllegalArgumentException— если исходный буфер совпадает с этим буфером -
ReadOnlyBufferException— если этот буфер доступен только для чтения
put
public LongBuffer put(int index, LongBuffer src, int offset, int length)
Этот метод переносит length значений типа long из заданного исходного буфера в этот буфер, начиная с заданной 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— индекс в этом буфере, по которому будет записано первое значение типа long; должен быть неотрицательным и меньшеlimit() -
src— буфер, из которого будут считываться значения типа long -
offset— индекс в исходном буфере, по которому будет считано первое значение типа long; должен быть неотрицательным и меньшеsrc.limit() -
length— количество значений типа long для чтения из заданного буфера; должно быть неотрицательным и не превышать меньшее из значенийlimit() - indexиsrc.limit() - offset - Возвращает:
- Этот буфер
- Выбрасывает:
-
IndexOutOfBoundsException— если не выполняются предварительные условия для параметровindex,offsetиlength -
ReadOnlyBufferException— если этот буфер доступен только для чтения - Начиная с:
- 16
put
public LongBuffer put(long[] src, int offset, int length)
Этот метод переносит значения типа long из заданного исходного массива в этот буфер. Если из массива нужно скопировать больше значений типа long, чем осталось в этом буфере, то есть если length > remaining(), значения не переносятся и выбрасывается исключение BufferOverflowException.
В противном случае этот метод копирует length значений типа long из заданного массива в этот буфер, начиная с заданного смещения в массиве и текущей позиции этого буфера. Затем позиция этого буфера увеличивается на length.
Иными словами, вызов этого метода в форме dst.put(src, off, len) имеет в точности тот же эффект, что и цикл
for (int i = off; i < off + len; i++)
dst.put(src[i]);
- Параметры:
-
src— массив, из которого будут считываться значения типа long -
offset— смещение в массиве, по которому будет считано первое значение типа long; должно быть неотрицательным и не превышатьsrc.length -
length— количество значений типа long для чтения из заданного массива; должно быть неотрицательным и не превышатьsrc.length - offset - Возвращает:
- Этот буфер
- Выбрасывает:
-
BufferOverflowException— если в этом буфере недостаточно места -
IndexOutOfBoundsException— если не выполняются предварительные условия для параметровoffsetиlength -
ReadOnlyBufferException— если этот буфер доступен только для чтения
put
public final LongBuffer put(long[] src)
Этот метод переносит все содержимое заданного исходного массива long в этот буфер. Вызов этого метода в форме dst.put(a) работает точно так же, как вызов
dst.put(a, 0, a.length)
- Параметры:
-
src— исходный массив - Возвращает:
- Этот буфер
- Выбрасывает:
-
BufferOverflowException— если в этом буфере недостаточно места -
ReadOnlyBufferException— если этот буфер доступен только для чтения
put
public LongBuffer put(int index, long[] src, int offset, int length)
Этот метод переносит length значений типа long из заданного массива, начиная с заданного смещения в массиве и заданного индекса в этом буфере. Позиция этого буфера не изменяется.
Вызов этого метода в форме dst.put(index, src, offset, length) имеет в точности тот же эффект, что и следующий цикл, за исключением того, что сначала проверяется согласованность заданных параметров, а сам метод потенциально намного эффективнее:
for (int i = offset, j = index; i < offset + length; i++, j++)
dst.put(j, src[i]);
- Параметры:
-
index— индекс в этом буфере, по которому будет записано первое значение типа long; должен быть неотрицательным и меньшеlimit() -
src— массив, из которого будут считываться значения типа long -
offset— смещение в массиве, по которому будет считано первое значение типа long; должно быть неотрицательным и меньшеsrc.length -
length— количество значений типа long для чтения из заданного массива; должно быть неотрицательным и не превышать меньшее из значенийlimit() - indexиsrc.length - offset - Возвращает:
- Этот буфер
- Выбрасывает:
-
IndexOutOfBoundsException— если не выполняются предварительные условия для параметровindex,offsetиlength -
ReadOnlyBufferException— если этот буфер доступен только для чтения - Начиная с:
- 13
put
public LongBuffer put(int index, long[] src)
Этот метод копирует значения типа long из заданного исходного массива в этот буфер. Позиция этого буфера не изменяется. Вызов этого метода в форме dst.put(index, src) работает точно так же, как вызов:
dst.put(index, src, 0, src.length);
- Параметры:
-
index— индекс в этом буфере, по которому будет записано первое значение типа long; должен быть неотрицательным и меньшеlimit() -
src— массив, из которого будут считываться значения типа long - Возвращает:
- Этот буфер
- Выбрасывает:
-
IndexOutOfBoundsException— еслиindexотрицательно, не меньшеlimit()илиlimit() - index < src.length -
ReadOnlyBufferException— если этот буфер доступен только для чтения - Начиная с:
- 13
hasArray
public final boolean hasArray()
Если этот метод возвращает true, то можно безопасно вызывать методы array и arrayOffset.
array
public final long[] array()
Изменения содержимого этого буфера приведут к изменению содержимого возвращаемого массива и наоборот.
Перед вызовом этого метода вызовите метод hasArray, чтобы убедиться, что у этого буфера есть доступный базовый массив.
- Определено в:
-
arrayв классеBuffer - Возвращает:
- Массив, на основе которого создан этот буфер
- Выбрасывает:
-
ReadOnlyBufferException— если этот буфер основан на массиве, но доступен только для чтения -
UnsupportedOperationException— если этот буфер не основан на доступном массиве
arrayOffset
public final int arrayOffset()
Если этот буфер основан на массиве, то позиции буфера p соответствует индекс массива p + arrayOffset().
Перед вызовом этого метода вызовите метод hasArray, чтобы убедиться, что у этого буфера есть доступный базовый массив.
- Определено в:
-
arrayOffsetв классеBuffer - Возвращает:
- Смещение в массиве этого буфера для первого элемента буфера
- Выбрасывает:
-
ReadOnlyBufferException— если этот буфер основан на массиве, но доступен только для чтения -
UnsupportedOperationException— если этот буфер не основан на доступном массиве
position
public final LongBuffer position(int newPosition)
limit
public final LongBuffer limit(int newLimit)
mark
reset
clear
public final LongBuffer clear()
Вызовите этот метод перед заполнением буфера последовательностью операций чтения из канала или операций put. Например:
buf.clear(); // Prepare buffer for reading
in.read(buf); // Read data
Этот метод фактически не стирает данные в буфере, однако он назван так, поскольку чаще всего используется в ситуациях, когда это можно считать именно таковым.
flip
public final LongBuffer 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 при переносе данных из одного места в другое.
rewind
public final LongBuffer rewind()
Вызовите этот метод перед последовательностью операций записи в канал или операций get, предполагая, что предел уже установлен соответствующим образом. Например:
out.write(buf); // Write remaining data
buf.rewind(); // Rewind buffer
buf.get(array); // Copy data into array
compact
public abstract LongBuffer compact()
Элементы типа long между текущей позицией буфера и его пределом, если таковые имеются, копируются в начало буфера. То есть элемент типа long с индексом p = position() копируется в индекс ноль, элемент типа long с индексом p + 1 копируется в индекс один и так далее, пока элемент типа long с индексом limit() - 1 не будет скопирован в индекс n = limit() - 1 - p. Затем позиция буфера устанавливается в n+1, а его предел — в ёмкость буфера. Отметка, если она задана, сбрасывается.
Позиция буфера устанавливается в количество скопированных элементов типа long, а не в ноль, поэтому сразу после вызова этого метода можно вызвать другой относительный метод put.
- Возвращает:
- Этот буфер
- Вызывает исключение:
-
ReadOnlyBufferException- если этот буфер доступен только для чтения
isDirect
toString
hashCode
public int hashCode()
Хеш-код буфера long зависит только от оставшихся элементов, то есть от элементов начиная с position() и заканчивая элементом с индексом limit() - 1.
Поскольку хеш-коды буферов зависят от их содержимого, не рекомендуется использовать буферы в качестве ключей в хеш-таблицах или аналогичных структурах данных, если не известно, что их содержимое не изменится.
equals
public boolean equals(Object ob)
Два буфера long равны тогда и только тогда, когда
у них одинаковый тип элементов,
у них одинаковое количество оставшихся элементов и
две последовательности оставшихся элементов поточечно равны независимо от их начальных позиций.
Буфер long не равен объекту любого другого типа.
compareTo
public int compareTo(LongBuffer that)
Буферы long сравниваются лексикографически по последовательностям оставшихся элементов независимо от начальной позиции каждой последовательности в соответствующем буфере. Каждая пара элементов типа long сравнивается так, как если бы был вызван метод Long.compare(long,long).
Буфер long нельзя сравнивать с объектом любого другого типа.
- Указано в:
-
compareToв интерфейсеComparable<LongBuffer> - Параметры:
-
that- объект для сравнения. - Возвращает:
- Отрицательное целое число, ноль или положительное целое число, если этот буфер соответственно меньше, равен или больше указанного буфера
mismatch
public int mismatch(LongBuffer that)
position каждого буфера и находится в диапазоне от 0 (включительно) до меньшего из количеств элементов remaining в каждом буфере (не включительно). Если у двух буферов есть общий префикс, возвращаемый индекс равен длине общего префикса, следовательно, по этому индексу в соответствующих буферах имеется несовпадение. Если один буфер является собственным префиксом другого, возвращаемый индекс равен меньшему из количеств оставшихся элементов в каждом буфере; следовательно, этот индекс допустим только для буфера с большим количеством оставшихся элементов. В противном случае несовпадений нет.
- Параметры:
-
that- буфер, который проверяется на наличие несовпадений с этим буфером - Возвращает:
- Относительный индекс первого несовпадения между этим буфером и заданным; -1, если несовпадений нет.
- Начиная с:
- 11
order
public abstract ByteOrder order()
Порядок байтов буфера long, созданного выделением памяти или обёртыванием существующего массива long, соответствует native order базового оборудования. Порядок байтов буфера long, созданного как представление буфера байтов, совпадает с порядком байтов этого буфера на момент создания представления.
- Возвращает:
- Порядок байтов этого буфера
© 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.