Spec-Zone.ru › OpenJDK 27

Класс LongBuffer

java.lang.Object
java.nio.Buffer
java.nio.LongBuffer
Все реализуемые интерфейсы:
Comparable<LongBuffer>
public abstract sealed class LongBuffer extends Buffer implements Comparable<LongBuffer>
Буфер long.

Этот класс определяет четыре категории операций с буферами 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(int capacity)
Выделяет новый буфер long.
final long[] array()
Возвращает массив long, используемый этим буфером в качестве хранилища (необязательная операция).
final int arrayOffset()
Возвращает смещение в массиве, используемом этим буфером в качестве хранилища, до первого элемента буфера (необязательная операция).
abstract LongBuffer asReadOnlyBuffer()
Создает новый буфер long, доступный только для чтения и совместно использующий содержимое этого буфера.
final LongBuffer clear()
Очищает этот буфер.
abstract LongBuffer compact()
Компактирует этот буфер (необязательная операция).
int compareTo(LongBuffer that)
Сравнивает этот буфер с другим.
abstract LongBuffer duplicate()
Создает новый буфер long, совместно использующий содержимое этого буфера.
boolean equals(Object ob)
Определяет, равен ли этот буфер другому объекту.
final LongBuffer flip()
Переворачивает этот буфер.
abstract long get()
Относительный метод get.
abstract long get(int index)
Абсолютный метод get.
LongBuffer get(int index, long[] dst)
Абсолютный пакетный метод get.
LongBuffer get(int index, long[] dst, int offset, int length)
Абсолютный пакетный метод get.
LongBuffer get(long[] dst)
Относительный пакетный метод get.
LongBuffer get(long[] dst, int offset, int length)
Относительный пакетный метод get.
final boolean hasArray()
Определяет, поддерживается ли этот буфер доступным массивом long.
int hashCode()
Возвращает текущий хеш-код этого буфера.
abstract boolean isDirect()
Определяет, является ли этот буфер long прямым.
final LongBuffer limit(int newLimit)
Устанавливает предел этого буфера.
final LongBuffer mark()
Устанавливает отметку этого буфера в текущей позиции.
int mismatch(LongBuffer that)
Находит и возвращает относительный индекс первого несовпадения между этим буфером и заданным буфером.
abstract ByteOrder order()
Возвращает порядок байтов этого буфера.
final LongBuffer position(int newPosition)
Устанавливает позицию этого буфера.
abstract LongBuffer put(int index, long l)
Абсолютный метод put (необязательная операция).
LongBuffer put(int index, long[] src)
Абсолютный пакетный метод put (необязательная операция).
LongBuffer put(int index, long[] src, int offset, int length)
Абсолютный пакетный метод put (необязательная операция).
LongBuffer put(int index, LongBuffer src, int offset, int length)
Абсолютный пакетный метод put (необязательная операция).
abstract LongBuffer put(long l)
Относительный метод put (необязательная операция).
final LongBuffer put(long[] src)
Относительный пакетный метод put (необязательная операция).
LongBuffer put(long[] src, int offset, int length)
Относительный пакетный метод put (необязательная операция).
LongBuffer put(LongBuffer src)
Относительный пакетный метод put (необязательная операция).
final LongBuffer reset()
Возвращает позицию буфера к ранее установленной отметке.
final LongBuffer rewind()
Перематывает этот буфер.
abstract LongBuffer slice()
Создает новый буфер long, содержимое которого представляет собой совместно используемую подпоследовательность содержимого этого буфера.
abstract LongBuffer slice(int index, int length)
Создает новый буфер long, содержимое которого представляет собой совместно используемую подпоследовательность содержимого этого буфера.
String toString()
Возвращает строку, описывающую состояние этого буфера.
static LongBuffer wrap(long[] array)
Оборачивает массив long в буфер.
static LongBuffer wrap(long[] array, int offset, int length)
Оборачивает массив 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(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени.

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

allocate

public static LongBuffer allocate(int capacity)
Выделяет новый буфер long.

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

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

wrap

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

Новый буфер будет основан на заданном массиве 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 в буфер.

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

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

slice

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

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

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

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

slice

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

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

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

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

duplicate

public abstract LongBuffer duplicate()
Создает новый буфер long, совместно использующий содержимое этого буфера.

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

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

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

asReadOnlyBuffer

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

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

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

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

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

get

public abstract long get()
Относительный метод get. Считывает значение типа long в текущей позиции этого буфера, а затем увеличивает позицию.
Возвращает:
Значение типа long в текущей позиции буфера
Выбрасывает:
BufferUnderflowException — если текущая позиция буфера не меньше его предела

put

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

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

Параметры:
l — значение типа long для записи
Возвращает:
Этот буфер
Выбрасывает:
BufferOverflowException — если текущая позиция этого буфера не меньше его предела
ReadOnlyBufferException — если этот буфер доступен только для чтения

get

public abstract long get(int index)
Абсолютный метод get. Считывает значение типа long по заданному индексу.
Параметры:
index — индекс, по которому будет считано значение типа long
Возвращает:
Значение типа long по заданному индексу
Выбрасывает:
IndexOutOfBoundsException — если index отрицательно или не меньше предела буфера

put

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

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

Параметры:
index — индекс, по которому будет записано значение типа long
l — значение типа long для записи
Возвращает:
Этот буфер
Выбрасывает:
IndexOutOfBoundsException — если index отрицательно или не меньше предела буфера
ReadOnlyBufferException — если этот буфер доступен только для чтения

get

public LongBuffer get(long[] dst, int offset, int length)
Относительный метод массового чтения get.

Этот метод переносит значения типа 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();
за исключением того, что сначала проверяется наличие в этом буфере достаточного количества значений типа long, а сам метод потенциально намного эффективнее.
Параметры:
dst — массив, в который будут записаны значения типа long
offset — смещение в массиве, с которого будет записано первое значение типа long; должно быть неотрицательным и не превышать dst.length
length — максимальное количество значений типа long для записи в заданный массив; должно быть неотрицательным и не превышать dst.length - offset
Возвращает:
Этот буфер
Выбрасывает:
BufferUnderflowException — если в этом буфере осталось меньше length значений типа long
IndexOutOfBoundsException — если не выполняются предварительные условия для параметров offset и length

get

public LongBuffer get(long[] dst)
Относительный метод массового чтения get.

Этот метод переносит значения типа 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)
Абсолютный метод массового чтения get.

Этот метод переносит 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)
Абсолютный метод массового чтения get.

Этот метод переносит значения типа 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)
Относительный метод массовой записи put (необязательная операция).

Этот метод переносит значения типа 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)
Абсолютный метод массовой записи put (необязательная операция).

Этот метод переносит 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)
Относительный метод массовой записи put (необязательная операция).

Этот метод переносит значения типа 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)
Относительный метод массовой записи put (необязательная операция).

Этот метод переносит все содержимое заданного исходного массива 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)
Абсолютный метод массовой записи put (необязательная операция).

Этот метод переносит 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)
Абсолютный метод массовой записи put (необязательная операция).

Этот метод копирует значения типа 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()
Показывает, основан ли этот буфер на доступном массиве long.

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

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

array

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

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

Перед вызовом этого метода вызовите метод 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)
Устанавливает позицию этого буфера. Если метка определена и больше новой позиции, она сбрасывается.
Переопределяет:
position в классе Buffer
Параметры:
newPosition — новое значение позиции; должно быть неотрицательным и не превышать текущий предел
Возвращает:
Этот буфер
Начиная с:
9

limit

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

mark

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

reset

public final LongBuffer reset()
Сбрасывает позицию этого буфера до ранее отмеченной позиции.

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

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

clear

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

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

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

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

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

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 при переносе данных из одного места в другое.

Переопределяет:
flip в классе Buffer
Возвращает:
Этот буфер
Начиная с:
9

rewind

public final LongBuffer 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 LongBuffer compact()
Уплотняет этот буфер (необязательная операция).

Элементы типа long между текущей позицией буфера и его пределом, если таковые имеются, копируются в начало буфера. То есть элемент типа long с индексом p = position() копируется в индекс ноль, элемент типа long с индексом p + 1 копируется в индекс один и так далее, пока элемент типа long с индексом limit() - 1 не будет скопирован в индекс n = limit() - 1 - p. Затем позиция буфера устанавливается в n+1, а его предел — в ёмкость буфера. Отметка, если она задана, сбрасывается.

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

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

isDirect

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

toString

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

hashCode

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

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

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

Переопределяет:
hashCode в классе Object
Возвращает:
Текущий хеш-код этого буфера
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

equals

public boolean equals(Object ob)
Определяет, равен ли этот буфер другому объекту.

Два буфера long равны тогда и только тогда, когда

  1. у них одинаковый тип элементов,

  2. у них одинаковое количество оставшихся элементов и

  3. две последовательности оставшихся элементов поточечно равны независимо от их начальных позиций.

Буфер long не равен объекту любого другого типа.

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

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, созданного как представление буфера байтов, совпадает с порядком байтов этого буфера на момент создания представления.

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

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

Spec-Zone.ru

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