Spec-Zone.ru › OpenJDK 25

Класс 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()
Относительный метод чтения.
abstract long get(int index)
Абсолютный метод чтения.
LongBuffer get(int index, long[] dst)
Абсолютный метод пакетного чтения.
LongBuffer get(int index, long[] dst, int offset, int length)
Абсолютный метод пакетного чтения.
LongBuffer get(long[] dst)
Относительный метод пакетного чтения.
LongBuffer get(long[] dst, int offset, int length)
Относительный метод пакетного чтения.
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)
Абсолютный метод записи (необязательная операция).
LongBuffer put(int index, long[] src)
Абсолютный метод пакетной записи (необязательная операция).
LongBuffer put(int index, long[] src, int offset, int length)
Абсолютный метод пакетной записи (необязательная операция).
LongBuffer put(int index, LongBuffer src, int offset, int length)
Абсолютный метод пакетной записи (необязательная операция).
abstract LongBuffer put(long l)
Относительный метод записи (необязательная операция).
final LongBuffer put(long[] src)
Относительный метод пакетной записи (необязательная операция).
LongBuffer put(long[] src, int offset, int length)
Относительный метод пакетной записи (необязательная операция).
LongBuffer put(LongBuffer src)
Относительный метод пакетной записи (необязательная операция).
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

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

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

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

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

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

Позиция буфера устанавливается в количество скопированных длинных значений, а не в ноль, чтобы сразу после вызова этого метода можно было вызвать другой относительный метод 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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/nio/LongBuffer.html

Spec-Zone.ru

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