JavaTM Platform
Standard Ed. 6

java.nio
クラス LongBuffer

java.lang.Object
  上位を拡張 java.nio.Buffer
      上位を拡張 java.nio.LongBuffer
すべての実装されたインタフェース:
Comparable<LongBuffer>

public abstract class LongBuffer
extends Buffer
implements Comparable<LongBuffer>

long バッファーです。  

このクラスは、long バッファーに対する操作を 4 つのカテゴリに分類します。

 

long バッファーを作成するには、バッファーのコンテンツに容量を割り当てる割り当て操作を実行するか、 既存の long 配列をバッファー内に ラップ するか、既存の byte バッファーの「ビュー」を作成します。  

byte バッファーと同様に、long バッファーにも「ダイレクト」バッファーと「非ダイレクト」バッファーがあります。このクラスの wrap メソッドで作成された long バッファーは非ダイレクトバッファーになります。byte バッファーのビューとして作成された long バッファーは、byte バッファーがダイレクトバッファーである場合に限りダイレクトバッファーになります。long バッファーがダイレクトバッファーであるかどうかは、isDirect メソッドを呼び出すことで判断できます。

 

このクラスのメソッドのうち戻り値を返さないものは、自身を呼び出したバッファーの情報を返します。これを応用して、メソッド呼び出しを連鎖させることができます。

導入されたバージョン:
1.4

メソッドの概要
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 バッファーがダイレクトバッファーであるかどうかを判断します。
abstract  ByteOrder order()
          現在のバッファーのバイト順序を取得します。
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 配列をバッファーにラップします。
 
クラス 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 LongBuffer allocate(int capacity)
新しい long バッファーを割り当てます。  

新しいバッファーの位置は 0、リミットは容量と同じ値になります。 マークは定義されません。このバッファーは補助配列を利用し、その配列オフセットは 0 になります。

パラメータ:
capacity - 新しいバッファーの容量 (long)
戻り値:
新しい long バッファー
例外:
IllegalArgumentException - capacity が負の整数である場合

wrap

public static LongBuffer wrap(long[] array,
                              int offset,
                              int length)
long 配列をバッファーにラップします。  

新しいバッファーは指定された long 配列によって補助されます。 バッファーに変更を加えると配列も変更され、配列に変更を加えるとバッファーも変更されます。新しいバッファーの容量は array.length、位置は offset、リミットは offset + length になります。 マークは定義されません。指定された配列が補助配列となり、その配列オフセットは 0 になります。

パラメータ:
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、位置は 0 になります。 マークは定義されません。指定された配列が補助配列となり、その配列オフセットは 0 になります。

パラメータ:
array - 現在のバッファーを補助する配列
戻り値:
新しい long バッファー

slice

public abstract LongBuffer slice()
現在のバッファーのコンテンツの共有サブシーケンスをコンテンツとする新しい long バッファーを作成します。  

新しいバッファーのコンテンツは、現在のバッファーの現在位置から始まります。現在のバッファーのコンテンツに変更を加えると、その内容が新しいバッファーに反映されます。 新しいバッファーのコンテンツに変更を加えると、その内容が現在のバッファーに反映されます。 2 つのバッファーの位置、リミット、マークの値はそれぞれ異なります。  

新しいバッファーの位置は 0、容量とリミットはこのバッファー内に残っている long 値の数になります。 マークは定義されません。新しいバッファーは、現在のバッファーがダイレクトバッファーである場合に限りダイレクトバッファーになります。 また、現在のバッファーが読み取り専用バッファーである場合に限り読み取り専用バッファーになります。

戻り値:
新しい long バッファー

duplicate

public abstract LongBuffer duplicate()
現在のバッファーのコンテンツを共有する新しい long バッファーを作成します。  

新しいバッファーのコンテンツは、現在のバッファーのコンテンツと同じになります。現在のバッファーのコンテンツに変更を加えると、その内容が新しいバッファーに反映されます。 新しいバッファーのコンテンツに変更を加えると、その内容が現在のバッファーに反映されます。 2 つのバッファーの位置、リミット、マークの値はそれぞれ異なります。  

新しいバッファーの容量、リミット、位置、マークの値は、現在のバッファーの対応する値と同じになります。新しいバッファーは、現在のバッファーがダイレクトバッファーである場合に限りダイレクトバッファーになります。 また、現在のバッファーが読み取り専用バッファーである場合に限り読み取り専用バッファーになります。

戻り値:
新しい long バッファー

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) の形式で呼び出すと、次のループとまったく同じ結果になります。  

     for (int i = off; i < off + len; i++)
         dst[i] = src.get(); 
ただし、現在のバッファー内に残っている long 値の数が十分であることを最初に確認する動作は、このメソッド固有です。 また、このメソッドのほうがループよりもずっと効率的です。

パラメータ:
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) 

戻り値:
現在のバッファー
例外:
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) 

戻り値:
現在のバッファー
例外:
BufferOverflowException - 現在のバッファー内に残っている容量が不足している場合
ReadOnlyBufferException - 現在のバッファーが読み込み専用バッファーである場合

hasArray

public final boolean hasArray()
現在のバッファーがアクセス可能な long 配列に連動するかどうかを判断します。  

このメソッドの戻り値が true であれば、array メソッドおよび arrayOffset メソッドを安全に呼び出すことができます。

定義:
クラス Buffer 内の hasArray
戻り値:
現在のバッファーが配列に連動しており、読み取り専用でない場合にかぎり true

array

public final long[] array()
現在のバッファーを補助する long 配列を返します (オプション)。  

現在のバッファーのコンテンツに変更を加えると、返される配列のコンテンツも変更されます。その逆も同様です。  

このメソッドを呼び出す前に hasArray メソッドを呼び出し、現在のバッファーがアクセス可能な補助配列を持っていることを確認します。

定義:
クラス Buffer 内の array
戻り値:
現在のバッファーを補助する配列
例外:
ReadOnlyBufferException - 現在のバッファーが配列に連動しており、しかも読み込み専用である場合
UnsupportedOperationException - 現在のバッファーがアクセス可能な配列を利用しない場合

arrayOffset

public final int arrayOffset()
現在のバッファーの補助配列内にある、このバッファーの最初の要素のオフセットを返します (オプション)。  

現在のバッファーが配列に連動していれば、その位置 p が配列のインデックス p + arrayOffset() と一致します。  

このメソッドを呼び出す前に hasArray メソッドを呼び出し、現在のバッファーがアクセス可能な補助配列を持っていることを確認します。

定義:
クラス Buffer 内の arrayOffset
戻り値:
現在のバッファーの配列内にある、このバッファーの最初の要素のオフセット
例外:
ReadOnlyBufferException - 現在のバッファーが配列に連動しており、しかも読み込み専用である場合
UnsupportedOperationException - 現在のバッファーがアクセス可能な配列を利用しない場合

compact

public abstract LongBuffer compact()
現在のバッファーを圧縮します (オプション)。  

バッファーの現在位置からリミットまでの間に long 値が存在する場合、これらをバッファーの先頭にコピーします。つまり、インデックス位置 p = position() の long 値がインデックス 0 にコピーされ、インデックス位置 p + 1 の long 値がインデックス 1 にコピーされるということです。 インデックス位置 limit() - 1 の long 値がインデックス n = limit() - 1 - p にコピーされるまで、同様の処理が繰り返されます。最終的にバッファーの位置は n+1 に設定され、リミットは容量の値と等しくなります。マークは破棄されます。  

バッファーの位置は、0 ではなく、コピーされる long 値の数と等しくなります。 したがって、このメソッドを呼び出したあと、すぐに別の相対「put」メソッドを呼び出すことができます。

戻り値:
現在のバッファー
例外:
ReadOnlyBufferException - 現在のバッファーが読み込み専用バッファーである場合

isDirect

public abstract boolean isDirect()
現在の long バッファーがダイレクトバッファーであるかどうかを判断します。

定義:
クラス Buffer 内の isDirect
戻り値:
現在のバッファーがダイレクトバッファーである場合にかぎり true

toString

public String toString()
このバッファーの状態を要約した文字列を返します。

オーバーライド:
クラス Object 内の toString
戻り値:
概要文字列

hashCode

public int hashCode()
現在のバッファーの現在のハッシュコードを返します。  

long バッファーのハッシュコードは、バッファー内に残っている要素、すなわち position()limit() - 1 の要素だけに依存します。  

バッファーのハッシュコードはコンテンツ依存型です。 今後バッファーのコンテンツが変更されないことが明らかでないかぎり、バッファーをハッシュマップその他のデータ構造のキーとして使用することは避けてください。

オーバーライド:
クラス Object 内の hashCode
戻り値:
現在のバッファーの現在のハッシュコード
関連項目:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object ob)
現在のバッファーが別のオブジェクトと等価であるかどうかを判断します。  

2 つの long バッファーは、次の場合にかぎり等価です。  

  1. 要素の型が同じである

  2. バッファー内に残っている要素数が同じである

  3. バッファー内に残っている要素のシーケンス (開始位置とは無関係) が各点で等しい (pointwise equal)

 

long バッファーが、その他の型のオブジェクトと等価になることはありません。

オーバーライド:
クラス Object 内の equals
パラメータ:
ob - 現在のバッファーと比較するオブジェクト
戻り値:
現在のバッファーが指定されたオブジェクトと等価である場合にかぎり true
関連項目:
Object.hashCode(), Hashtable

compareTo

public int compareTo(LongBuffer that)
現在のバッファーを別のバッファーと比較します。  

2 つの long バッファーを比較する際は、バッファー内に残っている要素のシーケンスが辞書順に比較されます。このとき、双方のバッファー内に残っている各シーケンスの開始位置は考慮されません。  

このとき、双方のバッファー内に残っている各シーケンスの開始位置は考慮されません。

定義:
インタフェース Comparable<LongBuffer> 内の compareTo
パラメータ:
that - the object to be compared.
戻り値:
このバッファーが指定されたバッファーより小さい場合は負の整数、等しい場合は 0、大きい場合は正の整数

order

public abstract ByteOrder order()
現在のバッファーのバイト順序を取得します。  

割り当てまたは既存の long 配列のラップによって作成された long バッファーのバイト順序は、基本となるハードウェアの ネイティブのバイト順序 と同じになります。byte バッファーのビューとして作成された long バッファーのバイト順序は、ビューを作成した時点の byte バッファーのバイト順序と同じになります。

戻り値:
現在のバッファーのバイト順序

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。