Класс ShortBuffer
- java.lang.Object
-
- java.nio.Buffer
-
- java.nio.ShortBuffer
- Все реализованные интерфейсы:
- Comparable<ShortBuffer>
public abstract class ShortBuffer extends Buffer implements Comparable<ShortBuffer>
Буфер для хранения коротких целых чисел (short).
Этот класс определяет четыре категории операций с буферами коротких целых чисел:
Абсолютные и относительные методы
getиput, которые считывают и записывают отдельные короткие целые числа;Относительные методы
bulk get, которые копируют последовательности коротких целых чисел из этого буфера в массив;Относительные методы
bulk put, которые копируют последовательности коротких целых чисел из массива коротких целых чисел или другого буфера коротких целых чисел в этот буфер;Методы для
compacting,duplicatingиslicingбуфера коротких целых чисел.
Буферы коротких целых чисел могут быть созданы с помощью allocation, который выделяет место для содержимого буфера, с помощью wrapping для обертывания существующего массива коротких целых чисел в буфер, или путём создания представления существующего буфера байтов.
Как и буферы байтов, буферы коротких целых чисел могут быть прямыми или непрямыми. Буфер коротких целых чисел, созданный с помощью методов этого класса, будет непрямым. Буфер коротких целых чисел, созданный как представление буфера байтов, будет прямым только тогда, когда сам буфер байтов является прямым. Прямой или нет буфер коротких целых чисел может быть определено вызовом метода isDirect.
Методы в этом классе, которые не возвращают значения, возвращают буфер, над которым они вызываются. Это позволяет цепочить вызовы методов.
- С момента:
- 1.4
Методы
| Модификатор и тип | Метод и описание |
|---|---|
static ShortBuffer |
allocate(int capacity) Выделяет новый буфер коротких целых чисел. |
short[] |
array() Возвращает массив коротких целых чисел, который лежит в основе этого буфера (необязательная операция). |
int |
arrayOffset() Возвращает смещение в массиве, который лежит в основе этого буфера, первого элемента буфера (необязательная операция). |
abstract ShortBuffer |
asReadOnlyBuffer() Создаёт новый, только для чтения, буфер коротких целых чисел, который разделяет содержимое этого буфера. |
abstract ShortBuffer |
compact() Уплотняет этот буфер (необязательная операция). |
int |
compareTo(ShortBuffer that) Сравнивает этот буфер с другим. |
abstract ShortBuffer |
duplicate() Создаёт новый буфер коротких целых чисел, который разделяет содержимое этого буфера. |
boolean |
equals(Object ob) Определяет, равен ли этот буфер другому объекту. |
abstract short |
get() Относительный метод получения. |
abstract short |
get(int index) Абсолютный метод получения. |
ShortBuffer |
get(short[] dst) Относительный метод получения блоков. |
ShortBuffer |
get(short[] dst,
int offset,
int length) Относительный метод получения блоков. |
boolean |
hasArray() Определяет, поддерживает ли этот буфер доступный массив коротких целых чисел. |
int |
hashCode() Возвращает текущий хэш-код этого буфера. |
abstract boolean |
isDirect() Определяет, является ли этот буфер коротких целых чисел прямым. |
abstract ByteOrder |
order() Получает порядок байтов этого буфера. |
abstract ShortBuffer |
put(int index,
short s) Абсолютный метод записи (необязательная операция). |
abstract ShortBuffer |
put(short s) Относительный метод записи (необязательная операция). |
ShortBuffer |
put(short[] src) Относительный метод записи блоков (необязательная операция). |
ShortBuffer |
put(short[] src,
int offset,
int length) Относительный метод записи блоков (необязательная операция). |
ShortBuffer |
put(ShortBuffer src) Относительный метод записи блоков (необязательная операция). |
abstract ShortBuffer |
slice() Создаёт новый буфер коротких целых чисел, чьё содержимое является общей последовательностью содержимого этого буфера. |
String |
toString() Возвращает строку, обобщающую состояние этого буфера. |
static ShortBuffer |
wrap(short[] array) Оборачивает массив коротких целых чисел в буфер. |
static ShortBuffer |
wrap(short[] array,
int offset,
int length) Оборачивает массив коротких целых чисел в буфер. |
Методы, унаследованные от класса java.nio.Buffer
capacity, clear, flip, hasRemaining, isReadOnly, limit, limit, mark, position, position, remaining, reset, rewind Методы, унаследованные от класса java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait Методы
allocate
public static ShortBuffer allocate(int capacity)
Выделяет новый буфер коротких целых чисел.
Позиция нового буфера будет равна нулю, его предел будет равен его емкости, отметка будет неопределенной, а каждый его элемент будет инициализирован нулем. Он будет иметь backing array, и его array offset будет равен нулю.
- Параметры:
-
capacity- Емкость нового буфера в коротких целых числах - Возвращает:
- Новый буфер коротких целых чисел
- Выбрасывает:
-
IllegalArgumentException- Еслиcapacityявляется отрицательным целым числом
wrap
public static ShortBuffer wrap(short[] array,
int offset,
int length) Оборачивает массив коротких целых чисел в буфер.
Новый буфер будет поддерживаться заданным массивом коротких целых чисел; то есть изменения в буфере приведут к изменениям в массиве и наоборот. Емкость нового буфера будет array.length, его позиция будет offset, его предел будет offset + length, а отметка будет неопределенной. Его backing array будет заданным массивом, а его array offset будет равен нулю.
- Параметры:
-
array- Массив, который будет поддерживать новый буфер -
offset- Смещение подмассива, который будет использоваться; должно быть неотрицательным и не большеarray.length. Позиция нового буфера будет установлена в это значение. -
length- Длина подмассива, который будет использоваться; должно быть неотрицательным и не большеarray.length - offset. Предел нового буфера будет установлен вoffset + length. - Возвращает:
- Новый буфер коротких целых чисел
- Выбрасывает:
-
IndexOutOfBoundsException- Если условия дляoffsetиlengthпараметров не соблюдаются
wrap
public static ShortBuffer wrap(short[] array)
Оборачивает массив коротких целых чисел в буфер.
Новый буфер будет поддерживаться заданным массивом коротких целых чисел; то есть изменения в буфере приведут к изменениям в массиве и наоборот. Емкость и предел нового буфера будут array.length, его позиция будет равна нулю, а отметка будет неопределенной. Его backing array будет заданным массивом, а его array offset> будет равен нулю.
- Параметры:
-
array- Массив, который будет поддерживать этот буфер - Возвращает:
- Новый буфер коротких целых чисел
slice
public abstract ShortBuffer slice()
Создает новый буфер коротких целых чисел, содержащий общую подпоследовательность содержимого этого буфера.
Содержимое нового буфера будет начинаться с текущей позиции этого буфера. Изменения в содержимом этого буфера будут видны в новом буфере, и наоборот; значения позиции, предела и отметки двух буферов будут независимыми.
Позиция нового буфера будет равна нулю, его емкость и предел будут равны числу коротких целых чисел, оставшихся в этом буфере, а отметка будет неопределенной. Новый буфер будет прямым, если и только если этот буфер является прямым, и он будет только для чтения, если и только если этот буфер является только для чтения.
- Возвращает:
- Новый буфер коротких целых чисел
duplicate
public abstract ShortBuffer duplicate()
Создает новый буфер коротких целых чисел, который разделяет содержимое этого буфера.
Содержимое нового буфера будет таким же, как у этого буфера. Изменения в содержимом этого буфера будут видны в новом буфере, и наоборот; значения позиции, предела и отметки двух буферов будут независимыми.
Значения емкости, предела, позиции и отметки нового буфера будут идентичны значениям этого буфера. Новый буфер будет прямым, если и только если этот буфер является прямым, и он будет только для чтения, если и только если этот буфер является только для чтения.
- Возвращает:
- Новый буфер коротких целых чисел
asReadOnlyBuffer
public abstract ShortBuffer asReadOnlyBuffer()
Создает новый, только для чтения буфер коротких целых чисел, который разделяет содержимое этого буфера.
Содержимое нового буфера будет таким же, как у этого буфера. Изменения в содержимом этого буфера будут видны в новом буфере; однако сам новый буфер будет только для чтения и не позволит изменять общее содержимое. Значения позиции, предела и отметки двух буферов будут независимыми.
Значения емкости, предела, позиции и отметки нового буфера будут идентичны значениям этого буфера.
Если этот буфер сам по себе только для чтения, то этот метод ведет себя точно так же, как метод duplicate.
- Возвращает:
- Новый буфер коротких целых чисел, только для чтения
get
public abstract short get()
Метод относительного получения. Читает короткое целое число в текущей позиции буфера и затем увеличивает позицию.
- Возвращает:
- Короткое целое число в текущей позиции буфера
- Выбрасывает:
-
BufferUnderflowException- Если текущая позиция буфера не меньше его предела
put
public abstract ShortBuffer put(short s)
Метод относительного записи (необязательная операция).
Записывает заданное короткое целое число в этот буфер в текущей позиции и затем увеличивает позицию.
- Параметры:
-
s- Короткое целое число для записи - Возвращает:
- Этот буфер
- Выбрасывает:
-
BufferOverflowException- Если текущая позиция этого буфера не меньше его предела -
ReadOnlyBufferException- Если этот буфер является только для чтения
get
public abstract short get(int index)
Метод абсолютного получения. Читает короткое целое число по заданному индексу.
- Параметры:
-
index- Индекс, с которого будет считываться короткое целое число - Возвращает:
- Короткое целое число по заданному индексу
- Выбрасывает:
-
IndexOutOfBoundsException- Еслиindexотрицателен или не меньше предела буфера
put
public abstract ShortBuffer put(int index,
short s) Метод абсолютной записи (необязательная операция).
Записывает заданное короткое целое число в этот буфер по заданному индексу.
- Параметры:
-
index- Индекс, в который будет записано короткое целое число -
s- Значение короткого целого числа для записи - Возвращает:
- Этот буфер
- Выбрасывает:
-
IndexOutOfBoundsException- Еслиindexотрицателен или не меньше предела буфера -
ReadOnlyBufferException- Если этот буфер является только для чтения
get
public ShortBuffer get(short[] 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 ShortBuffer get(short[] dst)
Метод относительного пакетного получения.
Этот метод передает короткие целые числа из этого буфера в заданный массив-приемник. Вызов этого метода в формате src.get(a) ведет себя точно так же, как вызов
src.get(a, 0, a.length)
- Параметры:
-
dst- Массив-приемник - Возвращает:
- Этот буфер
- Выбрасывает:
-
BufferUnderflowException- Если в этом буфере остается меньше, чемlengthкоротких целых чисел
put
public ShortBuffer put(ShortBuffer 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 ShortBuffer put(short[] src,
int offset,
int length) Метод put для относительного объёма (необязательная операция).
Этот метод переносит короткие целые числа из заданного исходного массива в этот буфер. Если коротких целых чисел для копирования из массива больше, чем остаётся места в этом буфере, то есть, если length > remaining(), то короткие целые числа не переносятся, и выбрасывается исключение BufferOverflowException.
В противном случае, этот метод копирует length коротких целых чисел из заданного массива в этот буфер, начиная с указанного смещения в массиве и текущей позиции этого буфера. Затем позиция этого буфера увеличивается на length.
Другими словами, вызов этого метода в форме dst.put(src, off, len) имеет точно такой же эффект, как цикл
for (int i = off; i < off + len; i++)
dst.put(a[i]); за исключением того, что он сначала проверяет, достаточно ли места в этом буфере, и потенциально гораздо эффективнее.- Параметры:
-
src- Массив, из которого нужно считать короткие целые числа -
offset- Смещение в массиве первого короткого целого числа для чтения; должно быть неотрицательным и не большеarray.length -
length- Количество коротких целых чисел для чтения из заданного массива; должно быть неотрицательным и не большеarray.length - offset - Возвращает:
- Этот буфер
- Исключения:
-
BufferOverflowException- Если в этом буфере недостаточно места -
IndexOutOfBoundsException- Если условия на параметрыoffsetиlengthне соблюдены -
ReadOnlyBufferException- Если этот буфер только для чтения
put
public final ShortBuffer put(short[] src)
Метод put для относительного объёма (необязательная операция).
Этот метод копирует всё содержимое заданного исходного массива коротких целых чисел в этот буфер. Вызов этого метода в форме dst.put(a) ведёт себя точно так же, как вызов
dst.put(a, 0, a.length)
- Параметры:
-
src- Исходный массив - Возвращает:
- Этот буфер
- Исключения:
-
BufferOverflowException- Если в этом буфере недостаточно места -
ReadOnlyBufferException- Если этот буфер только для чтения
hasArray
public final boolean hasArray()
Определяет, поддерживается ли этот буфер доступным массивом коротких целых чисел.
Если этот метод возвращает true, то методы array и arrayOffset могут быть безопасно вызваны.
- Унаследованно от:
-
hasArrayв классеBuffer - Возвращает:
-
trueесли и только если этот буфер поддерживается массивом и не является только для чтения
array
public final short[] array()
Возвращает массив коротких целых чисел, который поддерживает этот буфер (необязательная операция).
Изменения в содержимом этого буфера приведут к изменению содержимого возвращаемого массива, и наоборот.
Вызовите метод hasArray перед вызовом этого метода, чтобы убедиться, что этот буфер имеет доступный массив поддержки.
- Унаследованно от:
-
arrayв классеBuffer - Возвращает:
- Массив, поддерживающий этот буфер
- Исключения:
-
ReadOnlyBufferException- Если этот буфер поддерживается массивом, но является только для чтения -
UnsupportedOperationException- Если этот буфер не поддерживается доступным массивом
arrayOffset
public final int arrayOffset()
Возвращает смещение в массиве поддержки этого буфера первого элемента буфера (необязательная операция).
Если этот буфер поддерживается массивом, то позиция буфера p соответствует индексу массива p + arrayOffset().
Вызовите метод hasArray перед вызовом этого метода, чтобы убедиться, что этот буфер имеет доступный массив поддержки.
- Унаследованно от:
-
arrayOffsetв классеBuffer - Возвращает:
- Смещение в массиве этого буфера первого элемента буфера
- Исключения:
-
ReadOnlyBufferException- Если этот буфер поддерживается массивом, но является только для чтения -
UnsupportedOperationException- Если этот буфер не поддерживается доступным массивом
compact
public abstract ShortBuffer compact()
Уплотняет этот буфер (необязательная операция).
Короткие целые числа между текущей позицией буфера и его пределом (если таковые имеются) копируются в начало буфера. То есть, короткое целое число с индексом p = position() копируется в индекс ноль, короткое целое число с индексом p + 1 копируется в индекс один и так далее, пока короткое целое число с индексом limit() - 1 не будет скопировано в индекс n = limit() - 1 - p. Позиция буфера затем устанавливается в n+1, а его предел — в его ёмкость. Отметка, если она определена, отбрасывается.
Позиция буфера устанавливается в количество скопированных коротких целых чисел, а не в ноль, чтобы вызов этого метода мог быть сразу после вызова другого метода относительного put.
- Возвращает:
- Этот буфер
- Исключения:
-
ReadOnlyBufferException- Если этот буфер только для чтения
isDirect
public abstract boolean isDirect()
Определяет, является ли этот буфер коротких целых чисел прямым.
- Унаследованно от:
-
isDirectв классеBuffer - Возвращает:
-
trueесли и только если этот буфер является прямым
toString
public String toString()
Возвращает строку, обобщающую состояние этого буфера.
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)
Определяет, равен ли этот буфер другому объекту.
Два буфера коротких целых чисел равны тогда и только тогда, когда
У них одинаковый тип элементов,
У них одинаковое количество оставшихся элементов, и
Две последовательности оставшихся элементов, рассматриваемые независимо от своих начальных позиций, точечно равны.
Буфер коротких целых чисел не равен никакому другому типу объекта.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
ob- Объект, с которым сравнивается этот буфер - Возвращает:
-
trueесли и только если этот буфер равен заданному объекту - См. также:
-
Object.hashCode(),HashMap
compareTo
public int compareTo(ShortBuffer that)
Сравнивает этот буфер с другим.
Два буфера коротких целых чисел сравниваются путём сравнения их последовательностей оставшихся элементов лексикографически, не учитывая начальную позицию каждой последовательности в соответствующем буфере. Пары short элементов сравниваются так, как если бы вызывался Short.compare(short,short).
Буфер коротких целых чисел не сравним ни с каким другим типом объекта.
- Унаследованно от:
-
compareToв интерфейсеComparable<ShortBuffer> - Параметры:
-
that- сравниваемый объект. - Возвращает:
- Отрицательное целое число, ноль или положительное целое число, в зависимости от того, меньше ли, равен ли или больше ли этот буфер, чем заданный буфер
order
public abstract ByteOrder order()
Возвращает порядок байтов этого буфера.
Порядок байтов буфера коротких целых чисел, созданного путём выделения или обёртки существующего массива short, — это порядок native order базового оборудования. Порядок байтов буфера коротких целых чисел, созданного как представление (view) буфера байтов, — это порядок буфера байтов на момент создания представления.
- Возвращает:
- Порядок байтов этого буфера
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.