Spec-Zone.ru › OpenJDK 24

Класс 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.

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

Дополнительные операции

Методы, указанные как дополнительные операции, выбрасывают исключение ReadOnlyBufferException при вызове на только для чтения IntBuffer. Методы 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)
Преобразует массив целых чисел в буфер.

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

capacity, hasRemaining, isReadOnly, limit, position, remaining

Методы, объявленные в классе 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 - Если 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()
Метод относительного получения. Считывает int в текущей позиции буфера и затем увеличивает позицию.
Возвращает:
int в текущей позиции буфера
Исключения:
BufferUnderflowException - Если текущая позиция буфера не меньше его предела

put

public abstract IntBuffer put(int i)
Метод относительного записи (дополнительная операция).

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

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

get

public abstract int get(int index)
Метод абсолютного получения. Считывает int по заданному индексу.
Параметры:
index - Индекс, с которого будет считан int
Возвращает:
int по заданному индексу
Исключения:
IndexOutOfBoundsException - Если index отрицательно или не меньше предела буфера

put

public abstract IntBuffer put(int index, int i)
Метод абсолютной записи (дополнительная операция).

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

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

get

public IntBuffer get(int[] dst, int offset, int length)
Метод относительного массового получения.

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

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

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

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

get

public IntBuffer get(int[] dst)
Метод относительного массового получения.

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

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

get

public IntBuffer get(int index, int[] 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

get

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

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

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

put

public IntBuffer put(IntBuffer src)
Метод относительного массового помещения (дополнительная операция).

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

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

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

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

put

public IntBuffer put(int index, IntBuffer 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

put

public IntBuffer put(int[] 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 - Если этот буфер является только для чтения

put

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

Этот метод копирует всё содержимое заданного исходного массива целых чисел в этот буфер. Вызов этого метода в формате 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 целых чисел из заданного массива, начиная с указанного смещения в массиве и с указанного индекса в этом буфере. Положение этого буфера не изменяется.

Вызов этого метода в формате 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 IntBuffer put(int index, int[] src)
Метод абсолютного копирования put (необязательная операция).

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

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

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

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()
Очищает этот буфер. Позиция устанавливается в ноль, предел устанавливается в емкость, а отметка отбрасывается.

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

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

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

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

flip

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

После последовательности операций чтения или записи каналов вызовите этот метод для подготовки к последовательности операций записи в канал или относительных операций 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(java.lang.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, созданного как представление буфера байтов, соответствует порядку байтов буфера байтов в момент создания представления.

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

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/nio/IntBuffer.html

Spec-Zone.ru

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