Spec-Zone.ru › OpenJDK 8

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

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

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

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

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

С:
1.4

Методы

Модификатор и тип Метод и описание
static LongBuffer allocate(int capacity)

Выделяет новый буфер длинных целых чисел.

long[] array()

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

int arrayOffset()

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

abstract LongBuffer asReadOnlyBuffer()

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

abstract LongBuffer compact()

Уплотняет этот буфер (необязательная операция).

int compareTo(LongBuffer that)

Сравнивает этот буфер с другим.

abstract LongBuffer duplicate()

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

boolean equals(Object ob)

Определяет, равен ли этот буфер другому объекту.

abstract long get()

Относительный метод get.

abstract long get(int index)

Абсолютный метод get.

LongBuffer get(long[] dst)

Относительный метод get для блоков данных.

LongBuffer get(long[] dst, int offset, int length)

Относительный метод get для блоков данных.

boolean hasArray()

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

int hashCode()

Возвращает текущий код хеширования этого буфера.

abstract boolean isDirect()

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

abstract ByteOrder order()

Получает порядок байтов этого буфера.

abstract LongBuffer put(int index, long l)

Абсолютный метод put (необязательная операция).

abstract LongBuffer put(long l)

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

LongBuffer put(long[] src)

Относительный метод put для блоков данных (необязательная операция).

LongBuffer put(long[] src, int offset, int length)

Относительный метод put для блоков данных (необязательная операция).

LongBuffer put(LongBuffer src)

Относительный метод put для блоков данных (необязательная операция).

abstract LongBuffer slice()

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

String toString()

Возвращает строку, описывающую состояние этого буфера.

static LongBuffer wrap(long[] array)

Преобразует массив длинных целых чисел в буфер.

static LongBuffer wrap(long[] array, int offset, int length)

Преобразует массив длинных целых чисел в буфер.

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

capacity, clear, flip, hasRemaining, isReadOnly, limit, limit, mark, position, position, remaining, reset, rewind

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

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

Методы

allocate

public static LongBuffer allocate(int capacity)

Выделяет новый буфер long.

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

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

wrap

public static LongBuffer wrap(long[] array,
                              int offset,
                              int length)

Оборачивает массив long в буфер.

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

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

wrap

public static LongBuffer wrap(long[] array)

Оборачивает массив long в буфер.

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

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

slice

public abstract LongBuffer slice()

Создаёт новый буфер long, чьё содержимое — совместная подпоследовательность содержимого этого буфера.

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

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

Возвращает:
Новый буфер long

duplicate

public abstract LongBuffer duplicate()

Создаёт новый буфер long, который разделяет содержимое этого буфера.

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

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

Возвращает:
Новый буфер long

asReadOnlyBuffer

public abstract LongBuffer asReadOnlyBuffer()

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

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

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

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

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

get

public abstract long get()

Относительный метод get. Читает long в текущей позиции буфера и затем увеличивает позицию.

Возвращает:
long в текущей позиции буфера
Исключения:
BufferUnderflowException - Если текущая позиция буфера не меньше его предела

put

public abstract LongBuffer put(long l)

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

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

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

get

public abstract long get(int index)

Абсолютный метод get. Читает long по заданному индексу.

Параметры:
index - Индекс, из которого будет считано значение long
Возвращает:
long по заданному индексу
Исключения:
IndexOutOfBoundsException - Если index отрицательно или не меньше предела буфера

put

public abstract LongBuffer put(int index,
                               long l)

Абсолютный метод put (необязательная операция).

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

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

get

public LongBuffer get(long[] dst,
                      int offset,
                      int length)

Относительный метод массового получения get.

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

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

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

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

get

public LongBuffer get(long[] dst)

Относительный метод массового получения get.

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

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

put

public LongBuffer put(LongBuffer src)

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

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

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

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

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

put

public LongBuffer put(long[] src,
                      int offset,
                      int length)

Метод put для блочного копирования (необязательная операция).

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

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

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

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

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 - Если этот буфер не поддерживается доступным массивом

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 - сравниваемый объект.
Возвращает:
Отрицательное целое число, ноль или положительное целое число, если этот буфер меньше, равен или больше, чем заданный буфер

order

public abstract ByteOrder order()

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

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

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

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

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