- java.lang.Object
-
- java.nio.Buffer
-
- java.nio.LongBuffer
-
- すべての実装されたインタフェース:
Comparable<LongBuffer>
public abstract class LongBuffer extends Buffer implements Comparable<LongBuffer>
longバッファです。このクラスは、longバッファに対する操作を4つのカテゴリに分類します。
連続したlongシーケンスをこのバッファから配列へと転送する相対
一括get
メソッド。連続したlongシーケンスをlong配列やその他のlongバッファからこのバッファへと転送する相対
一括put
メソッド。長いバッファを
compacting
するメソッド。
longバッファを作成するには、バッファの内容に容量を割り当てる
割り当て
を実行するか、既存のlong配列をバッファ内にラップ
するか、既存のbyteバッファのビューを作成します。byteバッファと同様に、longバッファにも「ダイレクト」と「非ダイレクト」があります。 このクラスの
wrap
メソッドで作成されたlongバッファは非ダイレクト・バッファになります。 byteバッファのビューとして作成されたlongバッファは、byteバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。 longバッファがダイレクト・バッファかどうかは、isDirect
メソッドの呼出しによって判断できます。このクラスのメソッドのうち戻り値を返さないものは、自身を呼び出したバッファの情報を返します。 これを応用して、メソッド呼出しを連鎖させることができます。
- 導入されたバージョン:
- 1.4
-
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 static LongBuffer
allocate(int capacity)
新しいlongバッファを割り当てます。long[]
array()
このバッファを補助するlong配列を返します (オプションの操作)。int
arrayOffset()
このバッファの補助配列内にある、このバッファの最初の要素のオフセットを返します (オプションの操作)。abstract LongBuffer
asReadOnlyBuffer()
このバッファの内容を共有する新しい読込み専用longバッファを作成します。abstract LongBuffer
compact()
このバッファを圧縮します (オプションの操作)。int
compareTo(LongBuffer that)
このバッファを別のバッファと比較します。abstract LongBuffer
duplicate()
このバッファの内容を共有する新しいlongバッファを作成します。boolean
equals(Object ob)
このバッファが別のオブジェクトと等価であるかどうかを判断します。abstract long
get()
相対getメソッドです。abstract long
get(int index)
絶対getメソッドです。LongBuffer
get(long[] dst)
相対一括getメソッドです。LongBuffer
get(long[] dst, int offset, int length)
相対一括getメソッドです。boolean
hasArray()
このバッファがアクセス可能なlong配列に連動するかどうかを判断します。int
hashCode()
このバッファの現在のハッシュ・コードを返します。abstract boolean
isDirect()
現在のlongバッファがダイレクト・バッファであるかどうかを判断します。int
mismatch(LongBuffer that)
このバッファと指定されたバッファの最初の不一致の相対索引を検索して戻します。abstract ByteOrder
order()
このバッファのbyte順序を取得します。abstract LongBuffer
put(int index, long l)
絶対putメソッドです (オプションの操作)。abstract LongBuffer
put(long l)
相対putメソッドです (オプションの操作)。LongBuffer
put(long[] src)
相対一括putメソッドです (オプションの操作)。LongBuffer
put(long[] src, int offset, int length)
相対一括putメソッドです (オプションの操作)。LongBuffer
put(LongBuffer src)
相対一括putメソッドです (オプションの操作)。abstract LongBuffer
slice()
このバッファの内容の共有サブシーケンスを内容とする新しいlongバッファを作成します。String
toString()
このバッファの状態を要約した文字列を返します。static LongBuffer
wrap(long[] array)
long配列をバッファにラップします。static LongBuffer
wrap(long[] array, int offset, int length)
long配列をバッファにラップします。
-
-
-
メソッドの詳細
-
allocate
public static LongBuffer allocate(int capacity)
新しいlongバッファを割り当てます。新しいバッファの位置は0になり、その限界はその容量になり、マークは未定義になり、各要素はゼロに初期化され、バイト・オーダーは基礎となるハードウェアの
native order
になります。補助配列
を持ち、配列オフセット
はゼロになります。- パラメータ:
capacity
- 新しいバッファの容量(long)- 戻り値:
- 新しいlongバッファ
- 例外:
IllegalArgumentException
-capacity
が負の整数である場合
-
wrap
public static LongBuffer wrap(long[] array, int offset, int length)
long配列をバッファにラップします。新しいバッファは指定されたlong配列によって補助されます。バッファに変更を加えると配列も変更され、配列に変更を加えるとバッファも変更されます。 新しいバッファの容量は
array.length
になり、その位置はoffset
になり、その制限はoffset + length
になり、そのマークは未定義となり、そのバイト順序は基盤となるハードウェアのnative order
になります。 指定された配列が補助配列
となり、その配列オフセット
はゼロになります。- パラメータ:
array
- 新しいバッファを補助する配列offset
-使用するサブ配列のオフセット。array.length
以下の負でない値でなければならない。 新しいバッファの位置は、この値に設定される。length
- 使用するサブ配列の長さ。array.length - offset
以下の負でない値でなければならない。 新しいバッファのリミットは、offset+length
に設定される。- 戻り値:
- 新しいlongバッファ
- 例外:
IndexOutOfBoundsException
-offset
パラメータとlength
パラメータの前提条件が満たされていない場合
-
wrap
public static LongBuffer wrap(long[] array)
long配列をバッファにラップします。新しいバッファは指定されたlong配列によって補助されます。バッファに変更を加えると配列も変更され、配列に変更を加えるとバッファも変更されます。 新しいバッファの容量と限界は
array.length
になり、その位置はゼロになり、マークは未定義になり、そのバイト・オーダーは基盤となるハードウェアのnative order
になります。 指定された配列が補助配列
となり、その配列オフセット
はゼロになります。- パラメータ:
array
- このバッファを補助する配列- 戻り値:
- 新しいlongバッファ
-
slice
public abstract LongBuffer slice()
このバッファの内容の共有サブシーケンスを内容とする新しいlongバッファを作成します。新しいバッファの内容は、このバッファの現在位置から始まります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置は0になり、その容量と限界はこのバッファに残っているlongの数になり、そのマークは未定義になり、そのバイト順序はこのバッファの順序と同じになります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。
-
duplicate
public abstract LongBuffer duplicate()
このバッファの内容を共有する新しいlongバッファを作成します。新しいバッファの内容は、このバッファの内容と同じになります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファ容量、限界、位置、マーク値、およびバイト順は、このバッファのものと同じになります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。
-
asReadOnlyBuffer
public abstract LongBuffer asReadOnlyBuffer()
このバッファの内容を共有する新しい読込み専用longバッファを作成します。新しいバッファの内容は、このバッファの内容と同じになります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。しかし、新しいバッファ自体は読取り専用であり、その共有内容を変更することはできません。 2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファ容量、限界、位置、マーク値、およびバイト順は、このバッファのものと同じになります。
このバッファ自身が読込み専用の場合は、このメソッドは
duplicate
と同じように動作します。- 戻り値:
- 新しい読込み専用longバッファ
-
get
public abstract long get()
相対getメソッドです。 このバッファの現在位置にあるlongを読み込み、現在位置を増加します。- 戻り値:
- バッファの現在位置のlong
- 例外:
BufferUnderflowException
- バッファの現在位置がリミット以上である場合
-
put
public abstract LongBuffer put(long l)
相対putメソッドです (オプションの操作)。このバッファの現在位置に指定されたlongを書き込み、現在位置を増加します。
- パラメータ:
l
- 書き込まれるlong- 戻り値:
- このバッファ
- 例外:
BufferOverflowException
- このバッファの現在位置がリミット以上である場合ReadOnlyBufferException
- このバッファが読込み専用である場合
-
get
public abstract long get(int index)
絶対getメソッドです。 指定されたインデックス位置のlongを読み込みます。- パラメータ:
index
- longの読込み位置を示すインデックス- 戻り値:
- 指定されたインデックス位置のlong
- 例外:
IndexOutOfBoundsException
-index
が負の数である場合、またはバッファのリミット以上である場合
-
put
public abstract LongBuffer put(int index, long l)
絶対putメソッドです (オプションの操作)。このバッファの指定されたインデックス位置に指定されたlongを書き込みます。
- パラメータ:
index
- longの書込み先を示すインデックスl
- 書き込まれるlong値- 戻り値:
- このバッファ
- 例外:
IndexOutOfBoundsException
-index
が負の数である場合、またはバッファのリミット以上である場合ReadOnlyBufferException
- このバッファが読込み専用である場合
-
get
public LongBuffer get(long[] dst, int offset, int length)
相対一括getメソッドです。このメソッドは、このバッファから指定された配列へlongを転送します。 このバッファ内に残っているlong数が要求に満たない場合(つまり、
length
>
remaining()
である場合)、longは一切転送されず、BufferUnderflowException
がスローされます。それ以外の場合、このメソッドは、
length
個のlongを、このバッファの現在位置から指定された配列の指定されたオフセット位置へコピーします。 そのたびに、このバッファの位置がlength
ずつ増加します。このメソッドを
src.get(dst, off, len)
の形式で呼び出すと、次のループとまったく同じ結果になります。
ただし、このバッファ内に残っているlongの数が十分であることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。for (int i = off; i < off + len; i++) dst[i] = src.get();
- パラメータ:
dst
- longの書込み先となる配列offset
- 最初のlongの書込み先となる配列内のオフセット。dst.length
以下の負でない値でなければならないlength
- 指定された配列に書き込まれるlongの最大数。dst.length - offset
以下の負でない値でなければならない- 戻り値:
- このバッファ
- 例外:
BufferUnderflowException
- このバッファ内に残っているlong数がlength
よりも少ない場合IndexOutOfBoundsException
-offset
パラメータとlength
パラメータの前提条件が満たされていない場合
-
get
public LongBuffer get(long[] dst)
相対一括getメソッドです。このメソッドは、このバッファから指定された配列へlongを転送します。 このメソッドを
src.get(a)
の形式で呼び出すと、次の呼び出しと同じ結果になります。src.get(a, 0, a.length)
- パラメータ:
dst
- コピー先配列- 戻り値:
- このバッファ
- 例外:
BufferUnderflowException
- このバッファ内に残っているlong数がlength
よりも少ない場合
-
put
public LongBuffer put(LongBuffer src)
相対一括putメソッドです (オプションの操作)。このメソッドは、指定されたソース・バッファ内に残っているlongをこのバッファへ転送します。 ソース・バッファ内に残っているlong数がこのバッファ内に残っているlong数よりも多い場合(つまり、
src.remaining()
>
remaining()
である場合)、longは一切転送されず、BufferOverflowException
がスローされます。それ以外の場合、このメソッドは、指定されたバッファの現在位置からこのバッファの現在位置へn =
src.remaining()
個のlongをコピーします。 そのたびに、両方のバッファの位置がnずつ増加します。このメソッドを
dst.put(src)
の形式で呼び出すと、次のループとまったく同じ結果になります。while (src.hasRemaining()) dst.put(src.get());
ただし、このバッファ内に十分な容量があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。 このバッファとソース・バッファが同じバッキング配列またはメモリーを共有している場合、結果は、このバッファに書き込まれる前にソース要素が最初に中間のロケーションにコピーされたかのようになります。- パラメータ:
src
- longの読込み先となるソース・バッファ(このバッファ以外)- 戻り値:
- このバッファ
- 例外:
BufferOverflowException
- このバッファに、ソース・バッファ内に残っているlongを格納できるだけの容量がない場合IllegalArgumentException
- ソース・バッファとしてこのバッファを指定した場合ReadOnlyBufferException
- このバッファが読込み専用である場合
-
put
public LongBuffer put(long[] src, int offset, int length)
相対一括putメソッドです (オプションの操作)。このメソッドは、指定されたソース配列からこのバッファへlongを転送します。 配列からコピーするlong数がこのバッファ内に残っているlong数より多い場合(つまり、
length
>
remaining()
である場合)、longは一切転送されず、BufferOverflowException
がスローされます。それ以外の場合、このメソッドは、指定された配列の指定されたオフセット位置からこのバッファの現在位置へ
length
個のlongをコピーします。 そのたびに、このバッファの位置がlength
ずつ増加します。このメソッドを
dst.put(src, off, len)
の形式で呼び出すと、次のループとまったく同じ結果になります。
ただし、このバッファ内に十分な容量があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。for (int i = off; i < off + len; i++) dst.put(a[i]);
- パラメータ:
src
- longの読込み先となる配列offset
- 最初のlongの読込み先となる配列内のオフセット。array.length
以下の負でない値にする必要があるlength
- 指定された配列から読み取られるlongの数。array.length - offset
以下の負でない値でなければならない- 戻り値:
- このバッファ
- 例外:
BufferOverflowException
- このバッファ内に残っている容量が不足している場合IndexOutOfBoundsException
-offset
パラメータとlength
パラメータの前提条件が満たされていない場合ReadOnlyBufferException
- このバッファが読込み専用である場合
-
put
public final LongBuffer put(long[] src)
相対一括putメソッドです (オプションの操作)。このメソッドは、ソースとなる指定されたlong配列の内容全体をこのバッファへ転送します。 このメソッドを
dst.put(a)
の形式で呼び出すと、次の呼び出しと同じ結果になります。dst.put(a, 0, a.length)
- パラメータ:
src
- 転送元配列- 戻り値:
- このバッファ
- 例外:
BufferOverflowException
- このバッファ内に残っている容量が不足している場合ReadOnlyBufferException
- このバッファが読込み専用である場合
-
hasArray
public final boolean hasArray()
このバッファがアクセス可能なlong配列に連動するかどうかを判断します。このメソッドの戻り値が
true
であれば、array
およびarrayOffset
メソッドを安全に呼び出すことができます。
-
array
public final long[] array()
このバッファを補助するlong配列を返します (オプションの操作)。このバッファの内容に変更を加えると、返される配列の内容も変更されます。その逆も同様です。
このメソッドを呼び出す前に
hasArray
メソッドを呼び出し、このバッファがアクセス可能な補助配列を持っていることを確認します。- 定義:
array
、クラスBuffer
- 戻り値:
- このバッファを補助する配列
- 例外:
ReadOnlyBufferException
- このバッファが配列に連動しており、しかも読込み専用である場合UnsupportedOperationException
- このバッファがアクセス可能な配列を利用しない場合
-
arrayOffset
public final int arrayOffset()
このバッファの補助配列内にある、このバッファの最初の要素のオフセットを返します (オプションの操作)。このバッファが配列に連動していれば、その位置pが配列のインデックスp +
arrayOffset()
と一致します。このメソッドを呼び出す前に
hasArray
メソッドを呼び出し、このバッファがアクセス可能な補助配列を持っていることを確認します。- 定義:
arrayOffset
、クラスBuffer
- 戻り値:
- このバッファの配列内にある、このバッファの最初の要素のオフセット
- 例外:
ReadOnlyBufferException
- このバッファが配列に連動しており、しかも読込み専用である場合UnsupportedOperationException
- このバッファがアクセス可能な配列を利用しない場合
-
compact
public abstract LongBuffer compact()
このバッファを圧縮します (オプションの操作)。バッファの現在位置からリミットまでの間にlongが存在する場合、これらをバッファの先頭にコピーします。 つまり、インデックス位置p =
position()
のlongがインデックス・ゼロにコピーされ、インデックス位置p + 1のlongがインデックス1にコピーされるということです。インデックス位置limit()
- 1のlongがインデックスn =limit()
-1
- pにコピーされるまで、同様の処理が繰り返されます。 最終的にバッファの位置はn+1に設定され、リミットは容量の値と等しくなります。 マークは破棄されます。バッファの位置は、ゼロではなく、コピーされるlongの数と等しくなります。したがって、このメソッドを呼び出したあと、すぐに別の相対「put」メソッドを呼び出すことができます。
- 戻り値:
- このバッファ
- 例外:
ReadOnlyBufferException
- このバッファが読込み専用である場合
-
isDirect
public abstract boolean isDirect()
現在のlongバッファがダイレクト・バッファであるかどうかを判断します。
-
hashCode
public int hashCode()
このバッファの現在のハッシュ・コードを返します。longバッファのハッシュ・コードは、バッファ内に残っている要素、すなわち
position()
からlimit()
-1
までの要素のみに依存します。バッファのハッシュ・コードは内容依存型です。今後バッファの内容が変更されないことが明らかでないかぎり、バッファをハッシュ・マップその他のデータ構造のキーとして使用することは避けてください。
- オーバーライド:
hashCode
、クラスObject
- 戻り値:
- このバッファの現在のハッシュ・コード
- 関連項目:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
equals
public boolean equals(Object ob)
このバッファが別のオブジェクトと等価であるかどうかを判断します。2つのlongバッファは、次の場合にかぎり等価です。
要素の型が同じである
バッファ内に残っている要素数が同じである
バッファ内に残っている要素のシーケンス(開始位置とは無関係)が各点で等しい(pointwise equal)
longバッファが、その他の型のオブジェクトと等価になることはありません。
- オーバーライド:
equals
、クラスObject
- パラメータ:
ob
- このバッファと比較するオブジェクト- 戻り値:
- このバッファが指定されたオブジェクトと等価である場合にかぎり
true
- 関連項目:
Object.hashCode()
、HashMap
-
compareTo
public int compareTo(LongBuffer that)
このバッファを別のバッファと比較します。2つのlongバッファを比較する際は、バッファ内に残っている要素のシーケンスが辞書順に比較されます。このとき、双方のバッファ内に残っているシーケンスの開始位置は考慮されません。
Long.compare(long,long)
を呼び出したかのように、long
要素のペアが比較されます。longバッファとその他の型のオブジェクトを比較することはできません。
- 定義:
compareTo
、インタフェースComparable<LongBuffer>
- パラメータ:
that
- 比較対象のオブジェクト。- 戻り値:
- このバッファが指定されたバッファより小さい場合は負の整数、等しい場合はゼロ、大きい場合は正の整数
-
mismatch
public int mismatch(LongBuffer that)
このバッファと指定されたバッファの最初の不一致の相対索引を検索して戻します。 インデックスは各バッファのposition
に相対的であり、各バッファ(inclusive)の範囲が各バッファremaining
の範囲内で小さくなる。2つのバッファが共通プレフィクスを共有している場合、戻される索引は共通プレフィクスの長さとなり、各バッファ内のその索引の2つのバッファ間に不一致があることに従います。 一方のバッファがもう一方のバッファのプレフィクスである場合、戻された索引は各バッファ内の残りの要素の小さい方になり、残りの要素の数が多いバッファに対してのみ索引が有効になります。 それ以外の場合は、不一致はありません。
- パラメータ:
that
- このバッファと不一致をテストするためのバイト・バッファ- 戻り値:
- このバッファと指定されたバッファの最初の不一致の相対索引です。一致しない場合は -1です。
- 導入されたバージョン:
- 11
-
-