Spec-Zone.ru › OpenJDK 17

Класс IntBuffer

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

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

  • Абсолютные и относительные методы get и put для чтения и записи отдельных целых чисел;

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

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

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

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

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

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

С:
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)
Относительный метод для получения массива.
IntBuffer get(int[] dst, int offset, int length)
Относительный метод для получения массива.
IntBuffer get(int index, int[] dst)
Абсолютный метод для получения массива.
IntBuffer get(int index, int[] dst, int offset, int length)
Абсолютный метод для получения массива.
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)
Относительный метод для добавления массива (необязательная операция).
IntBuffer put(int[] src, int offset, int length)
Относительный метод для добавления массива (необязательная операция).
abstract IntBuffer put(int index, int i)
Абсолютный метод put (необязательная операция).
IntBuffer put(int index, int[] src)
Абсолютный метод для добавления массива (необязательная операция).
IntBuffer put(int index, int[] src, int offset, int length)
Абсолютный метод для добавления массива (необязательная операция).
IntBuffer put(int index, IntBuffer src, int offset, int length)
Абсолютный метод для добавления массива (необязательная операция).
IntBuffer put(IntBuffer src)
Относительный метод для добавления массива (необязательная операция).
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()
Метод 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)
Метод массового считывания относительно.

Этот метод копирует 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 относительного объёма.

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

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

get

public IntBuffer get(int index, int[] dst, int offset, int length)
Метод get абсолютного объёма.

Этот метод копирует 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)
Метод get абсолютного объёма.

Этот метод копирует целые числа из этого буфера в заданный целевой массив. Позиция этого буфера не изменяется. Вызов этого метода в форме 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)
Метод put относительного объёма (необязательная операция).

Этот метод копирует оставшиеся целые числа из заданного исходного буфера в этот буфер. Если оставшихся целых чисел в исходном буфере больше, чем в этом буфере, то есть, если 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)
Метод put абсолютного объёма (необязательная операция).

Этот метод копирует 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)
Метод put относительного объёма (необязательная операция).

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

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

Если этот метод возвращает 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 - Новое значение позиции; должно быть неотрицательным и не больше текущего ограничения
Возвращает:
Этот буфер

limit

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

mark

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

reset

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

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

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

clear

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

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

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

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

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

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
Возвращает:
Этот буфер

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
Возвращает:
Этот буфер

compact

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

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

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

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

isDirect

public abstract boolean isDirect()
Указывает, является ли этот буфер int буфером прямой адресации.
Определено в:
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, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/nio/IntBuffer.html

Spec-Zone.ru

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