ShortBuffer 保存要在 I/O 操作中使用的整數值序列。 ShortBuffer 類提供以下四類針對長緩衝區的操作:
- 讀取單個 Shorts 的絕對和相對 get 方法。
- 寫入單個 Shorts 的絕對和相對 put 方法。
- 相對批量 put 和 get 方法,將連續的 Shorts 序列從 int 數組或其他 Shorts 緩衝區傳輸到此緩衝區,並從該緩衝區傳輸到數組。
短緩衝區可以通過以下方式創建:
- allocate():這為緩衝區的內容分配空間。
- wrap():這會將現有的長數組包裝到緩衝區中。
ShortBuffer 類的大多數方法與 ByteBuffer 定義的方法直接類似。
類別聲明:
public abstract class ShortBuffer
extends Buffer
implements Comparable<ShortBuffer>
ShortBuffer類的方法:
方法 | 說明 |
---|---|
ShortBuffer allocate() | 該方法分配一個新的短緩衝區。 |
ShortBuffer array() | 此方法返回支持此緩衝區的短數組。 |
ShortBuffer arrayOffset() | 此方法返回緩衝區第一個元素在該緩衝區的後備數組中的偏移量。 |
ShortBuffer asReadOnlyBuffer() | 此方法創建一個新的隻讀短緩衝區,共享該緩衝區的內容。 |
ShortBuffer compact() | 此方法壓縮此緩衝區。 |
ShortBuffer compareTo | 此方法將此緩衝區與另一個緩衝區進行比較。 |
ShortBuffer duplicate() | 此方法創建一個新的短緩衝區來共享該緩衝區的內容。 |
ShortBuffer equals() | 此方法告知此緩衝區是否等於另一個對象。 |
get() | 該方法是一個相對 get 方法,返回緩衝區當前位置的短路。 |
get(int index) | 此方法是絕對 get 方法,並返回給定索引處的短路。 |
獲取(int[] dst) | 該方法是一個相對批量獲取方法並返回該緩衝區。 |
get(int[] dst, int 偏移量, int 長度) | 此方法相對是批量獲取方法並返回此緩衝區。 |
ShortBuffer hasArray() | 此方法告知此緩衝區是否由可訪問的 int 數組支持。 |
ShortBuffer isDirect() | 此方法告訴 int 緩衝區是否是直接的。 |
ShortBuffer order() | 該方法檢索該緩衝區的字節順序。 |
ShortBuffer put(int, short) | 此方法是絕對 put 方法並返回此緩衝區。 |
put(short s) | 該方法是一個相對的 put 方法並返回該緩衝區。 |
put(短[] src) | 此方法是相對批量放置方法並返回此緩衝區。 |
put(short[] src, int 偏移量, int 長度) | 此方法是相對批量放置方法並返回此緩衝區。 |
put(ShortBuffer src) | 此方法是相對批量放置方法並返回此緩衝區。 |
ShortBuffer slice() | 此方法創建一個新的短緩衝區,其內容是該緩衝區內容的共享子序列。 |
ShortBuffer toString() | 此方法返回一個總結該緩衝區狀態的字符串。 |
換行(短[]數組) | 此方法將短數組包裝到緩衝區中。 |
換行(短[]數組,int偏移量,int長度) | 此方法將短數組包裝到緩衝區中。 |
以下是一些演示ShortBuffer類及其方法的程序:
示例 1:
Java
// Java program to demonstrate
// ShortBuffer class
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// Declaring the capacity of the ShortBuffer
int capacity = 10;
// Creating the ShortBuffer
try {
// creating object of Shortbuffer
// and allocating size capacity
ShortBuffer sb = ShortBuffer.allocate(capacity);
// putting the value in Shortbuffer
sb.put((short)100);
sb.put(2, (short)9);
sb.rewind();
// getting array from fb ShortBuffer using
// array() method
short[] sbb = sb.array();
// printing the ShortBuffer fb
System.out.println("ShortBuffer: "
+ Arrays.toString(sbb));
}
catch (IllegalArgumentException e) {
System.out.println(
"IllegalArgumentException catched");
}
catch (ReadOnlyBufferException e) {
System.out.println(
"ReadOnlyBufferException catched");
}
}
}
輸出
ShortBuffer: [100, 0, 9, 0, 0, 0, 0, 0, 0, 0]
示例 2:
Java
// Java program to demonstrate
// ShortBuffer class
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// Declaring the capacity of the ShortBuffer 1
int capacity1 = 10;
// Declaring the capacity of the ShortBuffer 2
int capacity2 = 10;
// Creating the ShortBuffer
try {
// creating object of Shortbuffer 1
// and allocating size capacity
ShortBuffer sb1
= ShortBuffer.allocate(capacity1);
// creating object of Shortbuffer 2
// and allocating size capacity
ShortBuffer fb2
= ShortBuffer.allocate(capacity2);
// putting the value in Shortbuffer 1
sb1.put((short)100);
sb1.put(2, (short)9);
sb1.rewind();
// putting the value in Shortbuffer 2
fb2.put((short)100);
fb2.put(2, (short)9);
fb2.rewind();
// print the ShortBuffer 1
System.out.println(
"ShortBuffer 1: "
+ Arrays.toString(sb1.array()));
// print the ShortBuffer 2
System.out.println(
"ShortBuffer 2: "
+ Arrays.toString(fb2.array()));
// checking the equality of both ShortBuffer
boolean fbb = sb1.equals(fb2);
// checking if else condition
if (fbb)
System.out.println("both are equal");
else
System.out.println("both are not equal");
}
catch (IllegalArgumentException e) {
System.out.println(
"IllegalArgumentException catched");
}
catch (ReadOnlyBufferException e) {
System.out.println(
"ReadOnlyBufferException catched");
}
}
}
輸出
ShortBuffer 1: [100, 0, 9, 0, 0, 0, 0, 0, 0, 0] ShortBuffer 2: [100, 0, 9, 0, 0, 0, 0, 0, 0, 0] both are equal
相關用法
- Java java.nio.ByteBuffer用法及代碼示例
- Java java.nio.IntBuffer用法及代碼示例
- Java java.nio.file.FileStore用法及代碼示例
- Java java.nio.FloatBuffer用法及代碼示例
- Java java.nio.file.LinkPermission用法及代碼示例
- Java java.nio.DoubleBuffer用法及代碼示例
- Java java.nio.channels.spi.SelectorProvider用法及代碼示例
- Java java.nio.charset.CoderResult用法及代碼示例
- Java java.nio.charset.CodingErrorAction用法及代碼示例
- Java java.nio.channels.spi.AsynchronousChannelProvider用法及代碼示例
- Java java.nio.charset.CharsetEncoder用法及代碼示例
- Java java.nio.file.attribute.AclEntry用法及代碼示例
- Java java.nio.charset.Charset用法及代碼示例
- Java java.nio.LongBuffer用法及代碼示例
- Java java.nio.channels.Selector用法及代碼示例
- Java java.nio.file.spi.FileTypeDetector用法及代碼示例
- Java java.nio.ByteOrder用法及代碼示例
- Java java.nio.file.attribute.FileTime用法及代碼示例
- Java java.nio.file.SimpleFileVisitor用法及代碼示例
- Java java.nio.file.FileSystems用法及代碼示例
- Java java.nio.CharBuffer用法及代碼示例
- Java java.nio.Buffer用法及代碼示例
- Java java.nio.file.FileSystem用法及代碼示例
- Java java.nio.file.Paths用法及代碼示例
- Java java.net.SocketException用法及代碼示例
注:本文由純淨天空篩選整理自mank1083大神的英文原創作品 java.nio.ShortBuffer Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。