Spec-Zone.ru › OpenJDK 21

Класс 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 - Если capacity является отрицательным целым числом

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.

Этот метод копирует длинные целые числа из этого буфера в заданный массив назначения. Если в буфере осталось меньше длинных целых чисел, чем требуется для удовлетворения запроса, то есть, если length > remaining(), то длинные целые числа не копируются, и выбрасывается исключение BufferUnderflowException.

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

Другими словами, вызов этого метода в форме src.get(dst, off, len) имеет точно такой же эффект, как цикл

    for (int i = off; i < off + len; i++)
        dst[i] = src.get();
за исключением того, что он сначала проверяет, достаточно ли в этом буфере длинных целых чисел, и потенциально намного эффективнее.
Параметры:
dst - Массив, в который будут записаны длинные целые числа
offset - Смещение в массиве первого длинного целого числа, которое будет записано; должно быть неотрицательным и не превышать dst.length
length - Максимальное количество длинных целых чисел, которые будут записаны в заданный массив; должно быть неотрицательным и не превышать dst.length - offset
Возвращает:
Этот буфер
Исключение:
BufferUnderflowException - Если в этом буфере осталось меньше length длинных целых чисел
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 не соблюдаются
C момента:
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
C момента:
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 - Если этот буфер только для чтения
C момента:
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 - Если этот буфер только для чтения
C момента:
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(java.lang.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, созданного в виде представления буфера байтов, соответствует порядку байтов буфера байтов в момент создания представления.

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

© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/nio/LongBuffer.html

Spec-Zone.ru

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