- 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 LongBufferallocate(int capacity)新しいlongバッファを割り当てます。long[]array()このバッファを補助するlong配列を返します (オプションの操作)。intarrayOffset()このバッファの補助配列内にある、このバッファの最初の要素のオフセットを返します (オプションの操作)。abstract LongBufferasReadOnlyBuffer()このバッファの内容を共有する新しい読込み専用longバッファを作成します。LongBufferclear()このバッファをクリアします。abstract LongBuffercompact()このバッファを圧縮します (オプションの操作)。intcompareTo(LongBuffer that)このバッファを別のバッファと比較します。abstract LongBufferduplicate()このバッファの内容を共有する新しいlongバッファを作成します。booleanequals(Object ob)このバッファが別のオブジェクトと等価であるかどうかを判断します。LongBufferflip()このバッファをフリップ(反転)します。abstract longget()相対getメソッドです。abstract longget(int index)絶対getメソッドです。LongBufferget(long[] dst)相対一括getメソッドです。LongBufferget(long[] dst, int offset, int length)相対一括getメソッドです。booleanhasArray()このバッファがアクセス可能なlong配列に連動するかどうかを判断します。inthashCode()このバッファの現在のハッシュ・コードを返します。abstract booleanisDirect()現在のlongバッファがダイレクト・バッファであるかどうかを判断します。LongBufferlimit(int newLimit)このバッファのリミットを設定します。LongBuffermark()このバッファの現在位置にマークを設定します。abstract ByteOrderorder()このバッファのbyte順序を取得します。LongBufferposition(int newPosition)このバッファの位置を設定します。abstract LongBufferput(int index, long l)絶対putメソッドです (オプションの操作)。abstract LongBufferput(long l)相対putメソッドです (オプションの操作)。LongBufferput(long[] src)相対一括putメソッドです (オプションの操作)。LongBufferput(long[] src, int offset, int length)相対一括putメソッドです (オプションの操作)。LongBufferput(LongBuffer src)相対一括putメソッドです (オプションの操作)。LongBufferreset()バッファの位置を以前にマークした位置に戻します。LongBufferrewind()このバッファをリワインド(巻き戻し)します。abstract LongBufferslice()このバッファの内容の共有サブシーケンスを内容とする新しいlongバッファを作成します。StringtoString()このバッファの状態を要約した文字列を返します。static LongBufferwrap(long[] array)long配列をバッファにラップします。static LongBufferwrap(long[] array, int offset, int length)long配列をバッファにラップします。-
クラス java.nio.Bufferから継承されるメソッド
capacity, hasRemaining, isReadOnly, limit, position, remaining
-
-
-
-
メソッドの詳細
-
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- このバッファがアクセス可能な配列を利用しない場合
-
position
public final LongBuffer position(int newPosition)
このバッファの位置を設定します。 新しい位置の値よりもマークの値のほうが大きい場合、マークの定義は破棄されます。
-
limit
public final LongBuffer limit(int newLimit)
このバッファのリミットを設定します。 位置の値が新しいリミットより大きい場合、リミットと同じ値に変更されます。 マークの値が新しいリミットより大きい場合、マークの定義は破棄されます。
-
mark
public final LongBuffer mark()
このバッファの現在位置にマークを設定します。
-
reset
public final LongBuffer reset()
バッファの位置を以前にマークした位置に戻します。このメソッドを呼び出しても、マークの値は変更されません。マークが破棄されることもありません。
-
clear
public final LongBuffer clear()
このバッファをクリアします。 バッファの位置はゼロ、リミットは容量の値に設定されます。マークは破棄されます。一連のチャネル読込み操作またはput操作を使用してこのバッファにデータを格納する前に、このメソッドを呼び出します。 次に例を示します。
buf.clear(); // Prepare buffer for reading in.read(buf); // Read data
このメソッドはバッファ内のデータを実際に消去するわけではありません。しかし、そうした状況で使用されるため、クリアと命名されています。
-
flip
public final LongBuffer flip()
このバッファをフリップ(反転)します。 リミットは現在位置の値に設定され、現在位置を表す値はゼロに設定されます。 マークが定義されている場合、そのマークは破棄されます。一連のチャネル読込み操作(put)のあと、このメソッドを呼び出してチャネル書込み操作(相対get)の準備を行います。 次に例を示します。
buf.put(magic); // Prepend header in.read(buf); // Read data into rest of buffer buf.flip(); // Flip buffer out.write(buf); // Write header + data to channel
ある場所から別の場所にデータを転送する際、このメソッドを
compactメソッドと組み合わせて使用することがあります。
-
rewind
public final LongBuffer rewind()
このバッファをリワインド(巻き戻し)します。 位置はゼロに設定され、マークは破棄されます。このメソッドは、リミットを正しく設定したあと、一連のチャネル書込み操作(get)の前に呼び出します。 次に例を示します。
out.write(buf); // Write remaining data buf.rewind(); // Rewind buffer buf.get(array); // Copy data into array
-
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バッファがダイレクト・バッファであるかどうかを判断します。
-
toString
public String toString()
このバッファの状態を要約した文字列を返します。
-
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- 比較対象のオブジェクト。- 戻り値:
- このバッファが指定されたバッファより小さい場合は負の整数、等しい場合はゼロ、大きい場合は正の整数
-
-