Класс ShortBuffer
- java.lang.Object
-
- java.nio.Buffer
-
- java.nio.ShortBuffer
- Все реализованные интерфейсы:
Comparable<ShortBuffer>
public abstract class ShortBuffer extends Buffer implements Comparable<ShortBuffer>
Буфер для хранения коротких целых чисел.
Этот класс определяет четыре категории операций с буферами коротких целых чисел:
Абсолютные и относительные методы
getиput, которые считывают и записывают отдельные короткие целые числа;Относительные методы
bulk get, которые переносят последовательности коротких целых чисел из этого буфера в массив;Относительные методы
bulk put, которые переносят последовательности коротких целых чисел из массива или другого буфера коротких целых чисел в этот буфер; иМетод для
compactingбуфера коротких целых чисел.
Буферы коротких целых чисел могут быть созданы либо с помощью allocation, который выделяет память для содержимого буфера, либо путем wrapping существующего массива коротких целых чисел в буфер, или путем создания представления существующего буфера байтов.
Как и буфер байтов, буфер коротких целых чисел может быть прямым или косвенным. Буфер коротких целых чисел, созданный с помощью методов wrap этого класса, будет косвенным. Буфер коротких целых чисел, созданный как представление буфера байтов, будет прямым, если и только если сам буфер байтов является прямым. Можно определить является ли буфер коротких целых чисел прямым с помощью метода 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() | Относительный метод get. |
abstract short | get(int index) | Абсолютный метод get. |
ShortBuffer | get(short[] dst) | Относительный метод массового доступа get. |
ShortBuffer | get(short[] dst,
int offset,
int length) | Относительный метод массового доступа get. |
boolean | hasArray() | Указывает, поддерживается ли этот буфер доступным массивом коротких целых чисел. |
int | hashCode() | Возвращает текущий хэш-код этого буфера. |
abstract boolean | isDirect() | Указывает, является ли этот буфер коротких целых чисел прямым. |
int | mismatch(ShortBuffer that) | Находит и возвращает относительный индекс первого несовпадения между этим буфером и заданным буфером. |
abstract ByteOrder | order() | Извлекает порядок байтов этого буфера. |
abstract ShortBuffer | put(int index,
short s) | Абсолютный метод put (необязательная операция). |
abstract ShortBuffer | put(short s) | Относительный метод put (необязательная операция). |
ShortBuffer | put(short[] src) | Относительный метод массового доступа put (необязательная операция). |
ShortBuffer | put(short[] src,
int offset,
int length) | Относительный метод массового доступа put (необязательная операция). |
ShortBuffer | put(ShortBuffer src) | Относительный метод массового доступа put (необязательная операция). |
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)
Выделяет новый буфер коротких целых чисел.
Положение нового буфера будет равно нулю, его предел — его емкость, метка будет неопределена, каждый его элемент будет инициализирован нулем, а порядок байтов — native order базового оборудования. Он будет иметь backing array, а его array offset будет равен нулю.
- Параметры:
-
capacity- Емкость нового буфера, в коротких целых числах - Возвращает:
- Новый буфер коротких целых чисел
- Исключение:
-
IllegalArgumentException- Еслиcapacityявляется отрицательным целым числом
wrap
public static ShortBuffer wrap(short[] array,
int offset,
int length) Оборачивает массив коротких целых чисел в буфер.
Новый буфер будет поддерживаться заданным массивом коротких целых чисел; то есть, изменения в буфере приведут к изменению массива и наоборот. Емкость нового буфера будет array.length, его положение будет offset, его предел — offset + length, его метка будет неопределена, а порядок байтов — native order базового оборудования. Его 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, его положение — нулём, его метка — неопределённой, а порядок байтов — native order базового оборудования. Его 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()
Относительный метод get. Читает короткое целое число в текущем положении буфера и затем увеличивает положение.
- Возвращает:
- Короткое целое число в текущем положении буфера
- Исключение:
-
BufferUnderflowException- Если текущее положение буфера не меньше его предела
put
public abstract ShortBuffer put(short s)
Относительный метод put (необязательная операция).
Записывает заданное короткое целое число в этот буфер в текущем положении и затем увеличивает положение.
- Параметры:
-
s- Короткое целое число для записи - Возвращает:
- Этот буфер
- Исключение:
-
BufferOverflowException- Если текущее положение этого буфера не меньше его предела -
ReadOnlyBufferException- Если этот буфер только для чтения
get
public abstract short get(int index)
Абсолютный метод get. Читает короткое целое число по заданному индексу.
- Параметры:
-
index- Индекс, с которого будет считано короткое целое число - Возвращает:
- Короткое целое число по заданному индексу
- Исключение:
-
IndexOutOfBoundsException- Еслиindexотрицательно или не меньше предела буфера
put
public abstract ShortBuffer put(int index,
short s) Абсолютный метод put (необязательная операция).
Записывает заданное короткое целое число в этот буфер по заданному индексу.
- Параметры:
-
index- Индекс, в котором будет записано короткое целое число -
s- Значение короткого целого числа для записи - Возвращает:
- Этот буфер
- Исключение:
-
IndexOutOfBoundsException- Еслиindexотрицательно или не меньше предела буфера -
ReadOnlyBufferException- Если этот буфер только для чтения
get
public ShortBuffer get(short[] dst,
int offset,
int length) Относительный метод массового считывания get.
Этот метод передает короткие целые числа из этого буфера в заданный массив назначения. Если в буфере осталось меньше коротких целых чисел, чем требуется для выполнения запроса, то есть, если 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)
Относительный метод массового считывания get.
Этот метод передает короткие целые числа из этого буфера в заданный массив назначения. Вызов этого метода в формате src.get(a) ведет себя точно так же, как вызов
src.get(a, 0, a.length)
- Параметры:
-
dst- Массив назначения - Возвращает:
- Этот буфер
- Исключение:
-
BufferUnderflowException- Если осталось меньшеlengthкоротких целых чисел в этом буфере
put
public ShortBuffer put(ShortBuffer 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 ShortBuffer put(short[] src,
int offset,
int length) Метод put для больших объёмов данных (относительная операция).
Этот метод копирует короткие целые числа (shorts) из заданного исходного массива в этот буфер. Если копировать нужно больше коротких целых чисел из массива, чем осталось места в этом буфере, то есть, если 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- объект для сравнения. - Возвращает:
- Отрицательное целое число, ноль или положительное целое число, как этот буфер меньше, равен или больше, чем заданный буфер
mismatch
public int mismatch(ShortBuffer that)
Находит и возвращает относительный индекс первого несовпадения между этим буфером и заданным буфером. Индекс относителен к position каждого буфера и будет находиться в диапазоне от 0 (включительно) до меньшего из remaining элементов в каждом буфере (исключая).
Если два буфера имеют общую префиксную часть, то возвращаемый индекс — длина общего префикса, и следует, что между двумя буферами существует несовпадение в этом индексе в пределах соответствующих буферов. Если один буфер является правильным префиксом другого, то возвращаемый индекс — меньшее из оставшихся элементов в каждом буфере, и следует, что индекс допустим только для буфера с большим количеством оставшихся элементов. В противном случае несовпадения нет.
- Параметры:
-
that- Буфер байтов, который необходимо проверить на несовпадение с этим буфером - Возвращает:
- Относительный индекс первого несовпадения между этим и заданным буфером, в противном случае -1, если несовпадения нет.
- С тех пор:
- 11
order
public abstract ByteOrder order()
Получает порядок байтов этого буфера.
Порядок байтов буфера коротких целых чисел, созданного путём выделения памяти или путём обертывания существующего массива short, — это native order используемого оборудования. Порядок байтов буфера коротких целых чисел, созданного как представление буфера байтов, — это порядок байтов буфера байтов в момент создания представления.
- Возвращает:
- Порядок байтов этого буфера
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ShortBuffer.html