Spec-Zone.ru › OpenJDK 17

Класс LongBuffer

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

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

  • Абсолютные и относительные методы get и put, которые считывают и записывают отдельные длинные целые числа;

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

  • Абсолютные и относительные методы bulk put, которые копируют непрерывные последовательности длинных целых чисел из массива длинных целых чисел{#if[char]?, строки,} или из другого буфера длинных целых чисел в этот буфер;{#if[!byte]? и}

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

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

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

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

С момента:
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 параметров не соблюдены

получить

public LongBuffer get(long[] dst)
Метод получить относительного объёма.

Этот метод передает длинные целые числа из этого буфера в заданный массив назначения. Вызов этого метода в форме src.get(a) ведет себя точно так же, как вызов

     src.get(a, 0, a.length) 
Параметры:
dst - Массив назначения
Возвращает:
Этот буфер
Бросает:
BufferUnderflowException - Если в этом буфере осталось меньше length длинных целых чисел

получить

public LongBuffer get(int index, long[] dst, int offset, int length)
Метод получить абсолютного объёма.

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

Вызов этого метода в форме src.get(index, dst, offset, length) имеет точно такой же эффект, как следующий цикл, за исключением того, что он сначала проверяет согласованность предоставленных параметров, и потенциально он намного эффективнее:


     for (int i = offset, j = index; i < offset + length; i++, j++)
         dst[i] = src.get(j);
 
Параметры:
index - Индекс в этом буфере, с которого будет считываться первое длинное целое число; должен быть неотрицательным и меньше limit()
dst - Массив назначения
offset - Смещение в массиве первого длинного целого числа, которое будет записано; должно быть неотрицательным и меньше dst.length
length - Количество длинных целых чисел, которые будут записаны в заданный массив; должно быть неотрицательным и не больше меньшего из limit() - index и dst.length - offset
Возвращает:
Этот буфер
Бросает:
IndexOutOfBoundsException - Если условия на параметры index, offset, и length не соблюдаются
С:
13

получить

public LongBuffer get(int index, long[] dst)
Метод получить абсолютного объёма.

Этот метод передает длинные целые числа из этого буфера в заданный массив назначения. Позиция этого буфера не изменяется. Вызов этого метода в форме src.get(index, dst) ведет себя точно так же, как вызов:

     src.get(index, dst, 0, dst.length) 
Параметры:
index - Индекс в этом буфере, с которого будет считываться первое длинное целое число; должен быть неотрицательным и меньше limit()
dst - Массив назначения
Возвращает:
Этот буфер
Бросает:
IndexOutOfBoundsException - Если index отрицательный, не меньше limit(), или limit() - index < dst.length
С:
13

поместить

public LongBuffer put(LongBuffer src)
Метод поместить относительного объёма (дополнительная операция).

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

В противном случае, этот метод копирует n = src.remaining() длинных целых чисел из заданного буфера в этот буфер, начиная с текущей позиции каждого буфера. Позиции обоих буферов затем увеличиваются на n.

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

     while (src.hasRemaining())
         dst.put(src.get()); 
за исключением того, что он сначала проверяет, достаточно ли места в этом буфере, и потенциально он намного эффективнее. Если этот буфер и буфер источника используют один и тот же вспомогательный массив или память, то результат будет таким, как если бы элементы источника были сначала скопированы во временное местоположение перед записью в этот буфер.
Параметры:
src - Буфер источника, из которого будут считываться длинные целые числа; не должен быть этим буфером
Возвращает:
Этот буфер
Бросает:
BufferOverflowException - Если в этом буфере недостаточно места для оставшихся длинных целых чисел в буфере источника
IllegalArgumentException - Если буфер источника является этим буфером
ReadOnlyBufferException - Если этот буфер только для чтения

поместить

public LongBuffer put(int index, LongBuffer src, int offset, int length)
Метод поместить абсолютного объёма (дополнительная операция).

Этот метод передает length длинных целых чисел в этот буфер из заданного буфера источника, начиная с заданного 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 - Индекс в этом буфере, в котором будет записано первое длинное целое число; должен быть неотрицательным и меньше limit()
src - Буфер источника, из которого будут считываться длинные целые числа
offset - Индекс в буфере источника первого длинного целого числа, которое будет считываться; должен быть неотрицательным и меньше src.limit()
length - Количество длинных целых чисел, которые будут считываться из заданного буфера; должно быть неотрицательным и не больше меньшего из limit() - index и src.limit() - offset
Возвращает:
Этот буфер
Бросает:
IndexOutOfBoundsException - Если условия на параметры index, offset, и length не соблюдаются
ReadOnlyBufferException - Если этот буфер только для чтения
С:
16

поместить

public LongBuffer put(long[] src, int offset, int length)
Метод поместить относительного объёма (дополнительная операция).

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

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

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


     for (int i = off; i < off + len; i++)
         dst.put(src[i]);
 
за исключением того, что он сначала проверяет, достаточно ли места в этом буфере.
Параметры:
src - Массив источника, из которого будут считываться длинные целые числа
offset - Смещение в массиве первого длинного целого числа, которое будет считываться; должно быть неотрицательным и не больше src.length
length - Количество длинных целых чисел, которые будут считываться из заданного массива; должно быть неотрицательным и не больше src.length - offset
Возвращает:
Этот буфер
Бросает:
BufferOverflowException - Если в этом буфере недостаточно места
IndexOutOfBoundsException - Если условия на параметры offset и length не соблюдаются
ReadOnlyBufferException - Если этот буфер только для чтения

поместить

public final LongBuffer put(long[] src)
Метод поместить относительного объёма (дополнительная операция).

Этот метод передает всё содержимое заданного массива длинных целых чисел в этот буфер. Вызов этого метода в форме dst.put(a) ведет себя точно так же, как вызов

     dst.put(a, 0, a.length) 
Параметры:
src - Массив источника
Возвращает:
Этот буфер
Бросает:
BufferOverflowException - Если в этом буфере недостаточно места
ReadOnlyBufferException - Если этот буфер только для чтения

поместить

public LongBuffer put(int index, long[] src, int offset, int length)
Метод поместить абсолютного объёма (дополнительная операция).

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

Вызов этого метода в форме dst.put(index, src, offset, length) имеет точно такой же эффект, как следующий цикл, за исключением того, что он сначала проверяет согласованность предоставленных параметров, и потенциально он намного эффективнее:


     for (int i = offset, j = index; i < offset + length; i++, j++)
         dst.put(j, src[i]);
 
Параметры:
index - Индекс в этом буфере, в котором будет записано первое длинное целое число; должен быть неотрицательным и меньше limit()
src - Массив источника, из которого будут считываться длинные целые числа
offset - Смещение в массиве первого длинного целого числа, которое будет считываться; должно быть неотрицательным и меньше src.length
length - Количество длинных целых чисел, которые будут считываться из заданного массива; должно быть неотрицательным и не больше меньшего из 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); 
Parameters:
index - Индекс в этом буфере, с которого будет записано первое значение типа long; должно быть неотрицательным и меньше limit()
src - Массив, из которого должны быть считаны значения типа long
Returns:
Этот буфер
Throws:
IndexOutOfBoundsException - Если index отрицательно, не меньше limit(), или limit() - index < src.length
ReadOnlyBufferException - Если этот буфер только для чтения
Since:
13

hasArray

public final boolean hasArray()
Указывает, поддерживается ли этот буфер доступным массивом типа long.

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

Specified by:
hasArray в классе Buffer
Returns:
true если и только если этот буфер поддерживается массивом и не является только для чтения

array

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

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

Вызовите метод hasArray перед вызовом этого метода, чтобы убедиться, что этот буфер поддерживается доступным массивом.

Specified by:
array в классе Buffer
Returns:
Массив, поддерживающий этот буфер
Throws:
ReadOnlyBufferException - Если этот буфер поддерживается массивом, но является только для чтения
UnsupportedOperationException - Если этот буфер не поддерживается доступным массивом

arrayOffset

public final int arrayOffset()
Возвращает смещение в поддерживающем массив этого буфера первого элемента буфера (необязательная операция).

Если этот буфер поддерживается массивом, то позиции буфера p соответствует индекс массива p + arrayOffset().

Вызовите метод hasArray перед вызовом этого метода, чтобы убедиться, что этот буфер поддерживается доступным массивом.

Specified by:
arrayOffset в классе Buffer
Returns:
Смещение в массиве этого буфера первого элемента буфера
Throws:
ReadOnlyBufferException - Если этот буфер поддерживается массивом, но является только для чтения
UnsupportedOperationException - Если этот буфер не поддерживается доступным массивом

position

public final LongBuffer position(int newPosition)
Устанавливает позицию этого буфера. Если метка определена и больше новой позиции, она отбрасывается.
Overrides:
position в классе Buffer
Parameters:
newPosition - Новое значение позиции; должно быть неотрицательным и не больше текущего предела
Returns:
Этот буфер

limit

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

mark

public final LongBuffer mark()
Устанавливает метку этого буфера в его текущей позиции.
Overrides:
mark в классе Buffer
Returns:
Этот буфер

reset

public final LongBuffer reset()
Возвращает позицию этого буфера к ранее помеченной позиции.

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

Overrides:
reset в классе Buffer
Returns:
Этот буфер

clear

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

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

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

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

Overrides:
clear в классе Buffer
Returns:
Этот буфер

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

Overrides:
flip в классе Buffer
Returns:
Этот буфер

rewind

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

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

 out.write(buf);    // Write remaining data
 buf.rewind();      // Rewind buffer
 buf.get(array);    // Copy data into array
Overrides:
rewind в классе Buffer
Returns:
Этот буфер

compact

public abstract LongBuffer compact()
Сжимает этот буфер (необязательная операция).

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

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

Returns:
Этот буфер
Throws:
ReadOnlyBufferException - Если этот буфер является только для чтения

isDirect

public abstract boolean isDirect()
Указывает, является ли этот буфер типа long прямым.
Specified by:
isDirect в классе Buffer
Returns:
true если и только если этот буфер является прямым

toString

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

hashCode

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

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

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

Overrides:
hashCode в классе Object
Returns:
Текущий хэш-код этого буфера
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

equals

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

Два буфера типа long равны, если и только если:

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

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

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

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

Overrides:
equals в классе Object
Parameters:
ob - Объект, с которым должен быть сравнен этот буфер
Returns:
true если и только если этот буфер равен заданному объекту
See Also:
  • Object.hashCode()
  • HashMap

compareTo

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

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

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

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

mismatch

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

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

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

order

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

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

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

© 1993, 2021, 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/17/docs/api/java.base/java/nio/LongBuffer.html

Spec-Zone.ru

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