Класс IntBuffer

Все реализованные интерфейсы:
Comparable<IntBuffer>
public abstract class IntBuffer
extends Buffer
implements Comparable<IntBuffer>

Буфер целых чисел типа int.

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

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

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

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

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

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

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

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

С:
1.4

Методы

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

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

int[] array()

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

int arrayOffset()

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

abstract IntBuffer asReadOnlyBuffer()

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

abstract IntBuffer compact()

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

int compareTo​(IntBuffer that)

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

abstract IntBuffer duplicate()

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

boolean equals​(Object ob)

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

abstract int get()

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

abstract int get​(int index)

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

IntBuffer get​(int[] dst)

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

IntBuffer get​(int[] dst, int offset, int length)

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

boolean hasArray()

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

int hashCode()

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

abstract boolean isDirect()

Определяет, является ли этот буфер целых чисел типа int прямым.

int mismatch​(IntBuffer that)

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

abstract ByteOrder order()

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

abstract IntBuffer put​(int i)

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

IntBuffer put​(int[] src)

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

IntBuffer put​(int[] src, int offset, int length)

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

abstract IntBuffer put​(int index, int i)

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

IntBuffer put​(IntBuffer src)

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

abstract IntBuffer slice()

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

String toString()

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

static IntBuffer wrap​(int[] array)

Оборачивает массив целых чисел в буфер.

static IntBuffer wrap​(int[] 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 IntBuffer allocate(int capacity)

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

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

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

wrap

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

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

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

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

wrap

public static IntBuffer wrap(int[] array)

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

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

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

slice

public abstract IntBuffer slice()

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

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

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

Задано:
slice в классе Buffer
Возвращает:
Новый буфер int

duplicate

public abstract IntBuffer duplicate()

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

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

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

Задано:
duplicate в классе Buffer
Возвращает:
Новый буфер int

asReadOnlyBuffer

public abstract IntBuffer asReadOnlyBuffer()

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

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

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

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

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

get

public abstract int get()

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

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

put

public abstract IntBuffer put(int i)

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

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

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

get

public abstract int get(int index)

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

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

put

public abstract IntBuffer put(int index,
                              int i)

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

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

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

get

public IntBuffer get(int[] dst,
                     int offset,
                     int length)

Относительный метод get для блочной операции.

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

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

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

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

get

public IntBuffer get(int[] dst)

Относительный метод get для блочной операции.

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

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

put

public IntBuffer put(IntBuffer src)

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

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

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

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

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

put

public IntBuffer put(int[] src,
                     int offset,
                     int length)

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

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

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

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

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

put

public final IntBuffer put(int[] src)

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

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

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

hasArray

public final boolean hasArray()

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

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

Указано в:
hasArray в классе Buffer
Возвращает:
true если и только если этот буфер поддерживается массивом и не является только для чтения

array

public final int[] array()

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

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

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

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

arrayOffset

public final int arrayOffset()

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

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

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

Указано в:
arrayOffset в классе Buffer
Возвращает:
Смещение в массиве этого буфера первого элемента буфера
Исключения:
ReadOnlyBufferException - Если этот буфер поддерживается массивом, но является только для чтения
UnsupportedOperationException - Если этот буфер не поддерживается доступным массивом

compact

public abstract IntBuffer compact()

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

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

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

Возвращает:
Этот буфер
Исключения:
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(IntBuffer that)

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

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

Буфер целых чисел не сравним ни с каким другим типом объекта.

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

mismatch

public int mismatch(IntBuffer that)

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

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

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

order

public abstract ByteOrder order()

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

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

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

© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/IntBuffer.html

Spec-Zone .ru
спецификации, руководства, описания, API