JavaTM 2 Platform
Standard Ed. 6

java.nio
類別 ShortBuffer

java.lang.Object
  繼承者 java.nio.Buffer
      繼承者 java.nio.ShortBuffer
所有已實作的介面:
Comparable<ShortBuffer>

public abstract class ShortBuffer
extends Buffer
implements Comparable<ShortBuffer>

short 緩衝區。

此類別定義了 short 緩衝區上的四類別操作:

  • 讀寫單個 short 的絕對和相對 getput 方法。

  • 將此緩衝區的連續 short 序列傳輸到陣列中的相對批量 get 方法;

  • 將 short 陣列或其他 short 緩衝區中的連續 short 序列傳輸到此緩衝區的相對批量 put 方法;以及

  • short 緩衝區的 compactingduplicatingslicing 方法。

  • short 緩衝區可以通過 allocation 創建,此方法通過 wrapping 將一個現有 short 陣列包裹到緩衝區中來為緩衝區內容分派空間,或者通過創建現有位元組緩衝區的視圖來創建。

    像位元組緩衝區一樣,short 緩衝區要麼是直接的,要麼是非直接的。通過此類別的 wrap 方法創建的 short 緩衝區將是非直接的。當且僅當位元組緩衝區本身為直接時,作為位元組緩衝區的視圖創建的 short 緩衝區才是直接的。通過調用 isDirect 方法可以確定 short 緩衝區是否為直接的。

    指定此類別中的方法(它們不返回其他值),以返回這些方法被調用時所在的緩衝區。這允許對方法調用進行連接。

    從以下版本開始:
    1.4

    方法摘要
    static ShortBuffer allocate(int capacity)
              分派新的 short 緩衝區。
     short[] array()
              返回實作此緩衝區的 short 陣列(可選操作)
     int arrayOffset()
              返回此緩衝區的第一個元素在緩衝區的底層實作陣列中的偏移量(可選操作)
    abstract  ShortBuffer asReadOnlyBuffer()
              創建共享此緩衝區內容的新的只讀 short 緩衝區。
    abstract  ShortBuffer compact()
              壓縮此緩衝區(可選操作)
     int compareTo(ShortBuffer that)
              將此緩衝區與另一個緩衝區進行比較。
    abstract  ShortBuffer duplicate()
              創建共享此緩衝區內容的新的 short 緩衝區。
     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()
              判斷是否可通過一個可存取的 short 陣列實作此緩衝區。
     int hashCode()
              返回此緩衝區的當前雜湊碼。
    abstract  boolean isDirect()
              判斷此 short 緩衝區是否為直接的。
    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()
              創建新的 short 緩衝區,其內容是此緩衝區內容的共享子序列。
     String toString()
              返回總結了此緩衝區狀態的字元串。
    static ShortBuffer wrap(short[] array)
              將 short 陣列包裹到緩衝區中。
    static ShortBuffer wrap(short[] array, int offset, int length)
              將 short 陣列包裹到緩衝區中。
     
    從類別 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)
    分派新的 short 緩衝區。

    新緩衝區的位置將為零,其界限將為其容量,其標記是未定義的。它將具有一個底層實作陣列,且其陣列偏移量將為零。

    參數:
    capacity - 新緩衝區的容量,以 short 為單位
    返回:
    新的 short 緩衝區
    拋出:
    IllegalArgumentException - 如果 capacity 為負整數

    wrap

    public static ShortBuffer wrap(short[] array,
                                   int offset,
                                   int length)
    將 short 陣列包裹到緩衝區中。

    給定的 short 陣列將支持新緩衝區;即緩衝區修改將導致陣列修改,反之亦然。新緩衝區的容量將為 array.length,其位置將為 offset,其界限將為 offset + length,其標記是未定義的。其底層實作陣列將為給定陣列,並且其陣列偏移量將為零。

    參數:
    array - 支持新緩衝區的陣列
    offset - 要使用的子陣列的偏移量;必須為非負且不大於 array.length。將新緩衝區的位置設置為此值。
    length - 要使用的子陣列的長度;必須為非負且不大於 array.length - offset。將新緩衝區的界限設置為 offset + length
    返回:
    新的 short 緩衝區
    拋出:
    IndexOutOfBoundsException - 如果關於 offsetlength 參數的前提不成立

    wrap

    public static ShortBuffer wrap(short[] array)
    將 short 陣列包裹到緩衝區中。

    給定的 short 陣列將支持新緩衝區;即緩衝區修改將導致陣列修改,反之亦然。新緩衝區的容量和界限將為 array.length,其位置將為零,其標記是未定義的。其底層實作陣列將為給定陣列,並且其陣列偏移量將為零。

    參數:
    array - 實作此緩衝區的陣列
    返回:
    新的 short 緩衝區

    slice

    public abstract ShortBuffer slice()
    創建新的 short 緩衝區,其內容是此緩衝區內容的共享子序列。

    新緩衝區的內容將從此緩衝區的當前位置開始。此緩衝區內容的更改在新緩衝區中是可見的,反之亦然;這兩個緩衝區的位置、界限和標記值是相互獨立的。

    新緩衝區的位置將為零,其容量和界限將為此緩衝區中所剩餘的 short 數量,其標記是未定義的。當且僅當此緩衝區為直接時,新緩衝區才是直接的,當且僅當此緩衝區為只讀時,新緩衝區才是只讀的。

    返回:
    新的 short 緩衝區

    duplicate

    public abstract ShortBuffer duplicate()
    創建共享此緩衝區內容的新的 short 緩衝區。

    新緩衝區的內容將為此緩衝區的內容。此緩衝區內容的更改在新緩衝區中是可見的,反之亦然;這兩個緩衝區的位置、界限和標記值是相互獨立的。

    新緩衝區的容量、界限、位置和標記值將與此緩衝區相同。當且僅當此緩衝區為直接時,新緩衝區才是直接的,當且僅當此緩衝區為只讀時,新緩衝區才是只讀的。

    返回:
    新的 short 緩衝區

    asReadOnlyBuffer

    public abstract ShortBuffer asReadOnlyBuffer()
    創建共享此緩衝區內容的新的只讀 short 緩衝區。

    新緩衝區的內容將為此緩衝區的內容。此緩衝區內容的更改在新緩衝區中是可見的,但新緩衝區將是只讀的並且不允許修改共享內容。兩個緩衝區的位置、界限和標記值是相互獨立的。

    新緩衝區的容量、界限、位置和標記值將與此緩衝區相同。

    如果此緩衝區本身是只讀的,則此方法與 duplicate 方法完全相同。

    返回:
    新的只讀 short 緩衝區

    get

    public abstract short get()
    相對 get 方法。讀取此緩衝區當前位置的 short,然後該位置遞增。

    返回:
    緩衝區當前位置的 short
    拋出:
    BufferUnderflowException - 如果緩衝區當前位置不小於其界限

    put

    public abstract ShortBuffer put(short s)
    相對 put 方法(可選操作)

    將給定 short 寫入此緩衝區的當前位置,然後該位置遞增。

    參數:
    s - 要寫入的 short
    返回:
    此緩衝區
    拋出:
    BufferOverflowException - 如果此緩衝區的當前位置不小於界限
    ReadOnlyBufferException - 如果此緩衝區是只讀的

    get

    public abstract short get(int index)
    絕對 get 方法。讀取給定索引處的 short。

    參數:
    index - 將讀取 short 的位置的索引
    返回:
    給定索引處的 short
    拋出:
    IndexOutOfBoundsException - 如果 index 為負或不小於緩衝區界限

    put

    public abstract ShortBuffer put(int index,
                                    short s)
    絕對 put 方法(可選操作)

    將給定 short 寫入此緩衝區的給定索引處。

    參數:
    index - 將在該位置寫入 short
    s - 要寫入的 short 值
    返回:
    此緩衝區
    拋出:
    IndexOutOfBoundsException - 如果 index 為負或不小於緩衝區界限
    ReadOnlyBufferException - 如果此緩衝區是只讀的

    get

    public ShortBuffer get(short[] dst,
                           int offset,
                           int length)
    相對批量 get 方法。

    此方法將此緩衝區的 short 傳輸到給定的目標陣列中。如果緩衝區中剩餘的 short 少於滿足請求所需的 short,即如果 length > remaining(),則不傳輸 short 且拋出 BufferUnderflowException

    否則,此方法將此緩衝區中的 length 個 short 複製到給定陣列中,從此緩衝區的當前位置和陣列中的給定偏移量位置開始複製。然後此緩衝區的位置遞增 length

    換句話說,調用此方法的形式為 src.get(dst, off, len),效果與以下循環語句完全相同:

         for (int i = off; i < off + len; i++)
             dst[i] = src.get(); 
    區別在於它首先檢查此緩衝區中是否具有足夠的 short,這樣可能效率更高。

    參數:
    dst - 要寫入 short 的陣列
    offset - 要寫入的第一個 short 在陣列中的偏移量;必須為非負且不大於 dst.length
    length - 要寫入給定陣列中的 short 的最大數量;必須為非負且不大於 dst.length - offset
    返回:
    此緩衝區
    拋出:
    BufferUnderflowException - 如果此緩衝區中的剩餘 short 少於 length
    IndexOutOfBoundsException - 如果關於 offsetlength 參數的前提不成立

    get

    public ShortBuffer get(short[] dst)
    相對批量 get 方法。

    此方法將此緩衝區的 short 傳輸到給定的目標陣列中。調用此方法的形式為 src.get(a),該調用與以下調用完全相同:

         src.get(a, 0, a.length) 

    返回:
    此緩衝區
    拋出:
    BufferUnderflowException - 如果此緩衝區中的剩餘 short 少於 length

    put

    public ShortBuffer put(ShortBuffer src)
    相對批量 put 方法(可選操作)

    此方法將給定源緩衝區中的剩餘 short 傳輸到此緩衝區中。如果源緩衝區中的剩餘 short 多於此緩衝區中的剩餘 short 空間,即 src.remaining() > remaining(),則不傳輸 short 且拋出 BufferOverflowException

    否則,此方法將給定緩衝區中的 n = src.remaining() 個 short 複製到此緩衝區中,從每個緩衝區的當前位置開始複製。然後這兩個緩衝區的位置均遞增 n

    換句話說,調用此方法的形式為 dst.put(src),效果與以下循環語句完全相同:

         while (src.hasRemaining())
             dst.put(src.get()); 
    區別在於它首先檢查此緩衝區中是否有足夠空間,這樣可能效率更高。

    參數:
    src - 要從中讀取 short 的源緩衝區;不能為此緩衝區
    返回:
    此緩衝區
    拋出:
    BufferOverflowException - 如果對於源緩衝區中剩餘的 short,此緩衝區沒有足夠空間
    IllegalArgumentException - 如果源緩衝區是此緩衝區
    ReadOnlyBufferException - 如果此緩衝區是只讀的

    put

    public ShortBuffer put(short[] src,
                           int offset,
                           int length)
    相對批量 put 方法(可選操作)

    此方法將給定源陣列中的 short 傳輸到此緩衝區中。如果要從陣列複製的 short 多於此緩衝區中的剩餘 short 空間,即如果 length > remaining(),則不傳輸 short 且拋出 BufferOverflowException

    否則,此方法將給定陣列中的 length 個 short 複製到此緩衝區中,從陣列中給定偏移量位置和此緩衝區的當前位置開始複製。然後此緩衝區的位置遞增 length

    換句話說,調用此方法的形式為 dst.put(src, off, len),效果與以下循環語句完全相同:

         for (int i = off; i < off + len; i++)
             dst.put(a[i]); 
    區別在於它首先檢查此緩衝區中是否有足夠空間,這樣可能效率更高。

    參數:
    src - 要從中讀取 short 的陣列
    offset - 要讀取的第一個 short 在陣列中的偏移量;必須為非負且不大於 array.length
    length - 要從給定陣列讀取的 short 數量;必須為非負且不大於 array.length - offset
    返回:
    此緩衝區
    拋出:
    BufferOverflowException - 如果此緩衝區沒有足夠空間
    IndexOutOfBoundsException - 如果關於 offsetlength 參數的前提不成立
    ReadOnlyBufferException - 如果此緩衝區是只讀的

    put

    public final ShortBuffer put(short[] src)
    相對批量 put 方法(可選操作)

    此方法將給定源 short 陣列中的所有內容傳輸到此緩衝區中。調用此方法的形式為 dst.put(a),該調用與以下調用完全相同:

         dst.put(a, 0, a.length) 

    返回:
    此緩衝區
    拋出:
    BufferOverflowException - 如果此緩衝區沒有足夠空間
    ReadOnlyBufferException - 如果此緩衝區是只讀的

    hasArray

    public final boolean hasArray()
    判斷是否可通過一個可存取的 short 陣列實作此緩衝區。

    如果此方法返回 true,則可以安全地調用 arrayarrayOffset 方法。

    指定者:
    類別 Buffer 中的 hasArray
    返回:
    當且僅當存在實作此緩衝區的陣列,並且此緩衝區不是只讀緩衝區時,返回 true

    array

    public final short[] array()
    返回實作此緩衝區的 short 陣列(可選操作)

    此緩衝區的內容修改將導致返回的陣列內容修改,反之亦然。

    調用此方法之前要調用 hasArray 方法,以確保此緩衝區具有可存取的底層實作陣列。

    指定者:
    類別 Buffer 中的 array
    返回:
    實作此緩衝區的陣列
    拋出:
    ReadOnlyBufferException - 如果存在實作此緩衝區的陣列,但緩衝區是只讀的
    UnsupportedOperationException - 如果不存在某個可存取的陣列實作此緩衝區

    arrayOffset

    public final int arrayOffset()
    返回此緩衝區的第一個元素在緩衝區的底層實作陣列中的偏移量(可選操作)

    如果存在實作此緩衝區的陣列,則緩衝區位置 p 對應於陣列索引 p + arrayOffset()

    調用此方法之前要調用 hasArray 方法,以確保此緩衝區具有可存取的底層實作陣列。

    指定者:
    類別 Buffer 中的 arrayOffset
    返回:
    此緩衝區的第一個元素在緩衝區陣列中的偏移量
    拋出:
    ReadOnlyBufferException - 如果存在實作此緩衝區的陣列,但緩衝區是只讀的
    UnsupportedOperationException - 如果不存在某個可存取的陣列實作此緩衝區

    compact

    public abstract ShortBuffer compact()
    壓縮此緩衝區(可選操作)

    將緩衝區當前位置和界限之間的 short(如果有)複製到緩衝區的開始處。即將索引 p = position() 處的 short 複製到索引 0 處,將索引 p + 1 處的 short 複製到索引 1 處,依此類別推,直到將索引 limit() - 1 處的 short 複製到索引 n = limit() - 1 - p 處。然後將緩衝區的位置設置為 n+1,並將其界限設置為其容量。如果已定義了標記,則丟棄它。

    將緩衝區的位置設置為複製的 short 的數量,而不是零,以便調用此方法後可以緊接著調用另一個相對 put 方法。

    返回:
    此緩衝區
    拋出:
    ReadOnlyBufferException - 如果此緩衝區是只讀的

    isDirect

    public abstract boolean isDirect()
    判斷此 short 緩衝區是否為直接的。

    指定者:
    類別 Buffer 中的 isDirect
    返回:
    當且僅當此緩衝區為直接時,返回 true

    toString

    public String toString()
    返回總結了此緩衝區狀態的字元串。

    覆寫:
    類別 Object 中的 toString
    返回:
    一個總結字元串

    hashCode

    public int hashCode()
    返回此緩衝區的當前雜湊碼。

    short 緩衝區的雜湊碼只取決於其剩餘元素;即取決於從 position() 開始一直到(包括) limit() - 1 處的元素。

    因為緩衝區雜湊碼與內容有關,因此建議不要在雜湊映射或類似資料結構中將緩衝區用作鍵,除非知道它們的內容不會發生更改。

    覆寫:
    類別 Object 中的 hashCode
    返回:
    此緩衝區的當前雜湊碼
    另請參見:
    Object.equals(java.lang.Object), Hashtable

    equals

    public boolean equals(Object ob)
    判斷此緩衝區是否與另一個物件相同。

    兩個 short 緩衝區是相同的,當且僅當:

    1. 它們具有相同的元素型別,

    2. 它們具有相同數量的剩餘元素,並且

    3. 兩個剩餘元素序列(與它們的起始位置無關)逐點相同。

    short 緩衝區與任何其他型別的物件都不同。

    覆寫:
    類別 Object 中的 equals
    參數:
    ob - 此緩衝區要比較的物件
    返回:
    當且僅當此緩衝區與給定物件相同時,返回 true
    另請參見:
    Object.hashCode(), Hashtable

    compareTo

    public int compareTo(ShortBuffer that)
    將此緩衝區與另一個緩衝區進行比較。

    比較兩個 short 緩衝區的方法是按字典順序比較它們的剩餘元素序列,而不考慮每個序列在其對應緩衝區中的起始位置。

    short 緩衝區不能與任何其他型別的物件進行比較。

    指定者:
    介面 Comparable<ShortBuffer> 中的 compareTo
    參數:
    that - 要比較的物件。
    返回:
    如果此緩衝區小於、等於或大於給定緩衝區,則相應返回負整數、零或正整數

    order

    public abstract ByteOrder order()
    獲取此緩衝區的位元組順序。

    通過分派或通過包裹現有 short 陣列而創建的 short 緩衝區的位元組順序是底層硬體的本機順序。作為位元組緩衝區的視圖而創建的 short 緩衝區的位元組順序是創建視圖時位元組緩衝區的位元組順序。

    返回:
    此緩衝區的位元組順序

    JavaTM 2 Platform
    Standard Ed. 6

    提交錯誤或意見

    版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only