Spec-Zone.ru › OpenJDK 25

Класс IntBuffer

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

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

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

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

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

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

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

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

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

Необязательные операции

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

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

Модификатор и тип Метод Описание
static IntBuffer allocate(int capacity)
Выделяет новый буфер целых чисел.
final int[] array()
Возвращает массив целых чисел, на основе которого создан этот буфер (необязательная операция).
final int arrayOffset()
Возвращает смещение первого элемента буфера относительно массива, на основе которого создан этот буфер (необязательная операция).
abstract IntBuffer asReadOnlyBuffer()
Создаёт новый буфер целых чисел, доступный только для чтения и использующий общее с этим буфером содержимое.
final IntBuffer clear()
Очищает этот буфер.
abstract IntBuffer compact()
Компактно упаковывает этот буфер (необязательная операция).
int compareTo(IntBuffer that)
Сравнивает этот буфер с другим.
abstract IntBuffer duplicate()
Создаёт новый буфер целых чисел, использующий общее с этим буфером содержимое.
boolean equals(Object ob)
Проверяет, равен ли этот буфер другому объекту.
final IntBuffer flip()
Переворачивает этот буфер.
abstract int get()
Относительный метод get.
abstract int get(int index)
Абсолютный метод get.
IntBuffer get(int[] dst)
Относительный пакетный метод get.
IntBuffer get(int[] dst, int offset, int length)
Относительный пакетный метод get.
IntBuffer get(int index, int[] dst)
Абсолютный пакетный метод get.
IntBuffer get(int index, int[] dst, int offset, int length)
Абсолютный пакетный метод get.
final boolean hasArray()
Проверяет, поддерживается ли этот буфер доступным массивом целых чисел.
int hashCode()
Возвращает текущий хеш-код этого буфера.
abstract boolean isDirect()
Проверяет, является ли этот буфер целых чисел прямым.
final IntBuffer limit(int newLimit)
Устанавливает предел этого буфера.
final IntBuffer mark()
Устанавливает отметку буфера в его текущей позиции.
int mismatch(IntBuffer that)
Находит и возвращает относительный индекс первого несовпадения между этим буфером и заданным буфером.
abstract ByteOrder order()
Возвращает порядок байтов этого буфера.
final IntBuffer position(int newPosition)
Устанавливает позицию этого буфера.
abstract IntBuffer put(int i)
Относительный метод put (необязательная операция).
final IntBuffer put(int[] src)
Относительный пакетный метод put (необязательная операция).
IntBuffer put(int[] src, int offset, int length)
Относительный пакетный метод put (необязательная операция).
abstract IntBuffer put(int index, int i)
Абсолютный метод put (необязательная операция).
IntBuffer put(int index, int[] src)
Абсолютный пакетный метод put (необязательная операция).
IntBuffer put(int index, int[] src, int offset, int length)
Абсолютный пакетный метод put (необязательная операция).
IntBuffer put(int index, IntBuffer src, int offset, int length)
Абсолютный пакетный метод put (необязательная операция).
IntBuffer put(IntBuffer src)
Относительный пакетный метод put (необязательная операция).
final IntBuffer reset()
Возвращает позицию буфера к ранее установленной отметке.
final IntBuffer rewind()
Перематывает этот буфер.
abstract IntBuffer slice()
Создаёт новый буфер целых чисел, содержимое которого является общей подпоследовательностью содержимого этого буфера.
abstract IntBuffer slice(int index, int length)
Создаёт новый буфер целых чисел, содержимое которого является общей подпоследовательностью содержимого этого буфера.
String toString()
Возвращает строку с кратким описанием состояния этого буфера.
static IntBuffer wrap(int[] array)
Помещает массив целых чисел в буфер.
static IntBuffer wrap(int[] array, int offset, int length)
Помещает массив целых чисел в буфер.

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

capacity, hasRemaining, isReadOnly, limit, position, remaining

Методы, объявленные в классе 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 — если capacity является отрицательным целым числом

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

slice

public abstract IntBuffer slice(int index, int length)
Создаёт новый буфер int, содержимое которого является общей подпоследовательностью содержимого этого буфера.

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

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

Определено в:
slice в классе Buffer
Параметры:
index — позиция в этом буфере, с которой будет начинаться содержимое нового буфера; должна быть неотрицательной и не превышать limit()
length — количество элементов в новом буфере; должно быть неотрицательным и не превышать limit() - index
Возвращает:
Новый буфер
Исключения:
IndexOutOfBoundsException — если index отрицательно или больше limit(), length отрицательно или length > limit() - index
Начиная с версии:
13

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

get

public IntBuffer get(int index, int[] dst, int offset, int length)
Абсолютный метод get для группового чтения.

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

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

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

get

public IntBuffer get(int index, int[] dst)
Абсолютный метод get для группового чтения.

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

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

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 index, IntBuffer src, int offset, int length)
Абсолютный метод put для групповой записи (необязательная операция).

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

put

public IntBuffer put(int[] src, int offset, int length)
Относительный метод put для групповой записи (необязательная операция).

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

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

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

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

put

public final IntBuffer put(int[] src)
Относительный метод put для групповой записи (необязательная операция).

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

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

put

public IntBuffer put(int index, int[] src, int offset, int length)
Абсолютный метод put для групповой записи (необязательная операция).

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

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

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

put

public IntBuffer put(int index, int[] src)
Абсолютный метод put для групповой записи (необязательная операция).

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

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

hasArray

public final boolean hasArray()
Показывает, использует ли этот буфер доступный массив int в качестве базового.

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

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

array

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

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

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

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

arrayOffset

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

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

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

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

position

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

limit

public final IntBuffer limit(int newLimit)
Устанавливает предел этого буфера. Если позиция больше нового предела, она устанавливается в значение нового предела. Если метка установлена и больше нового предела, она сбрасывается.
Переопределяет:
limit в классе Buffer
Параметры:
newLimit — новое значение предела; должно быть неотрицательным и не превышать ёмкость этого буфера
Возвращает:
Этот буфер
Начиная с версии:
9

mark

public final IntBuffer mark()
Устанавливает метку этого буфера в его текущую позицию.
Переопределяет:
mark в классе Buffer
Возвращает:
Этот буфер
Начиная с версии:
9

reset

public final IntBuffer reset()
Восстанавливает позицию этого буфера до ранее отмеченной позиции.

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

Переопределяет:
reset в классе Buffer
Возвращает:
Этот буфер
Начиная с версии:
9

clear

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

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

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

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

Переопределяет:
clear в классе Buffer
Возвращает:
Этот буфер
Начиная с версии:
9

flip

public final IntBuffer 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 IntBuffer 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 IntBuffer compact()
Уплотняет этот буфер (необязательная операция).

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

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

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

isDirect

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

toString

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

hashCode

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

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

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

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

equals

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

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

  1. у них одинаковый тип элементов;

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

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

Буфер int не равен объекту любого другого типа.

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

compareTo

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

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

Буфер int нельзя сравнивать с объектом любого другого типа.

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

mismatch

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

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

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

order

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

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

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

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

Spec-Zone.ru

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