Spec-Zone.ru › OpenJDK 24

Класс LongBuffer

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

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

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

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

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

  • Метод для compacting буфера длинных целых чисел.

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

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

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

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

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

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

Модификатор и тип Метод Описание
static LongBuffer allocate(int capacity)
Выделяет новый буфер длинных целых чисел.
final long[] array()
Возвращает массив длинных целых чисел, который является основой этого буфера (дополнительная операция).
final int arrayOffset()
Возвращает смещение в массиве поддержки этого буфера первого элемента буфера (дополнительная операция).
abstract LongBuffer asReadOnlyBuffer()
Создает новый буфер только для чтения, который использует содержимое этого буфера.
final LongBuffer clear()
Очищает этот буфер.
abstract LongBuffer compact()
Уплотняет этот буфер (дополнительная операция).
int compareTo(LongBuffer that)
Сравнивает этот буфер с другим.
abstract LongBuffer duplicate()
Создает новый буфер длинных целых чисел, использующий содержимое этого буфера.
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()
Определяет, поддерживает ли этот буфер доступ к массиву длинных целых чисел.
int hashCode()
Возвращает текущий хэш-код этого буфера.
abstract boolean isDirect()
Определяет, является ли этот буфер длинных целых чисел прямым.
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()
Создает новый буфер длинных целых чисел, содержащий общую последовательность содержимого этого буфера.
abstract LongBuffer slice(int index, int length)
Создает новый буфер длинных целых чисел, содержащий общую последовательность содержимого этого буфера.
String toString()
Возвращает строку, обобщающую состояние этого буфера.
static LongBuffer wrap(long[] array)
Оборачивает массив длинных целых чисел в буфер.
static LongBuffer wrap(long[] array, int offset, int length)
Оборачивает массив длинных целых чисел в буфер.

Методы, объявленные в классе java.nio.Buffer

capacity, hasRemaining, isReadOnly, limit, position, remaining

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

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

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

allocate

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

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

Параметры:
capacity - Ёмкость нового буфера в длинных целых числах
Возвращает:
Новый буфер длинных целых чисел
Исключения:
IllegalArgumentException - Если ёмкость — отрицательное число

wrap

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

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

Параметры:
array - Массив, который будет основой нового буфера
offset - Смещение подмассива для использования; должно быть неотрицательным и не превышать array.length. Позиция нового буфера будет установлена на это значение.
length - Длина подмассива для использования; должно быть неотрицательным и не превышать array.length - offset. Предел нового буфера будет установлен на offset + length.
Возвращает:
Новый буфер длинных целых чисел
Исключения:
IndexOutOfBoundsException - Если условия на offset и length параметры не выполняются

wrap

public static LongBuffer wrap(long[] array)
Оборачивает массив длинных целых чисел в буфер.

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

Параметры:
array - Массив, который будет основой этого буфера
Возвращает:
Новый буфер длинных целых чисел

slice

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

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

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

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

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

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

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

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

asReadOnlyBuffer

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

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

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

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

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

get

public abstract long get()
Относительный метод get. Читает длинное целое число в текущей позиции буфера и затем увеличивает позицию.
Возвращает:
Длинное целое число в текущей позиции буфера
Исключения:
BufferUnderflowException - Если текущая позиция буфера не меньше его предела

put

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

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

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

get

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

put

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

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

Параметры:
index - Индекс, по которому будет записываться длинное целое число
l - Значение длинного целого числа для записи
Возвращает:
Этот буфер
Исключения:
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()
Очищает этот буфер. Позиция устанавливается в ноль, предел — в емкость, а метка отбрасывается.

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

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

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

Переопределяет:
clear в классе Buffer
Возвращает:
Этот буфер
См. также:
9

flip

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

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

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

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

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

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

isDirect

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

toString

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

hashCode

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

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

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

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

equals

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

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

  1. У них один и тот же тип элементов,

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

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

Длинный буфер не равен никакому другому типу объекта.

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

compareTo

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

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

Длинный буфер не может быть сравнен ни с каким другим типом объекта.

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

mismatch

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

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

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

order

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

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

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

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/nio/LongBuffer.html

Spec-Zone.ru

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