|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.nio.Buffer java.nio.DoubleBuffer
public abstract class DoubleBuffer
double バッファーです。
このクラスは、double バッファーに対する操作を 4 つのカテゴリに分類します。
連続した double シーケンスをこのバッファーから配列へと転送する相対
メソッド一括 get
連続した double シーケンスを double 配列やその他の double バッファーからこのバッファーへと転送する相対
メソッド 一括 put
double バッファーを作成するには、バッファーのコンテンツに容量を割り当てる
操作を実行するか、
既存の double 配列をバッファー内に 割り当て
するか、または既存の byte バッファーの「ビュー」を作成します。
「ラップ」
byte バッファーと同様に、double バッファーにも「ダイレクト」バッファーと「非ダイレクト」バッファーがあります。このクラスの wrap メソッドで作成された double バッファーは非ダイレクトバッファーになります。byte バッファーのビューとして作成された double バッファーは、byte バッファーがダイレクトバッファーである場合に限りダイレクトバッファーになります。double バッファーがダイレクトバッファーであるかどうかは、isDirect
メソッドを呼び出すことで判断できます。
このクラスのメソッドのうち戻り値を返さないものは、自身を呼び出したバッファーの情報を返します。これを応用して、メソッド呼び出しを連鎖させることができます。
メソッドの概要 | |
---|---|
static DoubleBuffer |
allocate(int capacity)
新しい double バッファーを割り当てます。 |
double[] |
array()
現在のバッファーを補助する double 配列を返します (オプション)。 |
int |
arrayOffset()
現在のバッファーの補助配列内にある、このバッファーの最初の要素のオフセットを返します (オプション)。 |
abstract DoubleBuffer |
asReadOnlyBuffer()
現在のバッファーのコンテンツを共有する新しい読み込み専用 double バッファーを作成します。 |
abstract DoubleBuffer |
compact()
現在のバッファーを圧縮します (オプション)。 |
int |
compareTo(DoubleBuffer that)
現在のバッファーを別のバッファーと比較します。 |
abstract DoubleBuffer |
duplicate()
現在のバッファーのコンテンツを共有する新しい double バッファーを作成します。 |
boolean |
equals(Object ob)
現在のバッファーが別のオブジェクトと等価であるかどうかを判断します。 |
abstract double |
get()
相対「get」メソッドです。 |
DoubleBuffer |
get(double[] dst)
相対一括「get」メソッドです。 |
DoubleBuffer |
get(double[] dst,
int offset,
int length)
相対一括「get」メソッドです。 |
abstract double |
get(int index)
絶対「get」メソッドです。 |
boolean |
hasArray()
現在のバッファーがアクセス可能な double 配列に連動するかどうかを判断します。 |
int |
hashCode()
現在のバッファーの現在のハッシュコードを返します。 |
abstract boolean |
isDirect()
現在の double バッファーがダイレクトバッファーであるかどうかを判断します。 |
abstract ByteOrder |
order()
現在のバッファーのバイト順序を取得します。 |
abstract DoubleBuffer |
put(double d)
相対「put」メソッドです (オプション)。 |
DoubleBuffer |
put(double[] src)
相対一括「put」メソッドです (オプション)。 |
DoubleBuffer |
put(double[] src,
int offset,
int length)
相対一括「put」メソッドです (オプション)。 |
DoubleBuffer |
put(DoubleBuffer src)
相対一括「put」メソッドです (オプション)。 |
abstract DoubleBuffer |
put(int index,
double d)
絶対「put」メソッドです (オプション)。 |
abstract DoubleBuffer |
slice()
現在のバッファーのコンテンツの共有のサブシーケンスをコンテンツとする新しい double バッファーを作成します。 |
String |
toString()
このバッファーの状態を要約した文字列を返します。 |
static DoubleBuffer |
wrap(double[] array)
double 配列をバッファーにラップします。 |
static DoubleBuffer |
wrap(double[] array,
int offset,
int length)
double 配列をバッファーにラップします。 |
クラス 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 |
メソッドの詳細 |
---|
public static DoubleBuffer allocate(int capacity)
新しいバッファーの位置は 0、リミットは容量と同じ値になります。 マークは定義されません。このバッファーは
を利用し、その補助配列
は 0 になります。
配列オフセット
capacity
- 新しいバッファーの容量 (double)
IllegalArgumentException
- capacity が負の整数である場合public static DoubleBuffer wrap(double[] array, int offset, int length)
新しいバッファーは指定された double 配列によって補助されます。 バッファーに変更を加えると配列も変更され、配列に変更を加えるとバッファーも変更されます。新しいバッファーの容量は array.length、位置は offset、リミットは offset + length になります。 マークは定義されません。指定された配列が
となり、その補助配列
は 0 になります。 配列オフセット
array
- 新しいバッファーを補助する配列offset
- 使用するサブ配列のオフセット。array.length 以下の負でない値でなければならない。新しいバッファーの位置は、この値に設定されるlength
- 使用するサブ配列の長さ。 array.length - offset 以下の負でない値でなければならない。新しいバッファーのリミットは、offset + length に設定される
IndexOutOfBoundsException
- offset パラメータと length パラメータの前提条件が満たされていない場合public static DoubleBuffer wrap(double[] array)
新しいバッファーは指定された double 配列によって補助されます。 バッファーに変更を加えると配列も変更され、配列に変更を加えるとバッファーも変更されます。新しいバッファーの容量とリミットは array.length、位置は 0 になります。 マークは定義されません。指定された配列が
となり、その補助配列
は 0 になります。 配列オフセット
array
- 現在のバッファーを補助する配列
public abstract DoubleBuffer slice()
新しいバッファーのコンテンツは、現在のバッファーの現在位置から始まります。現在のバッファーのコンテンツに変更を加えると、その内容が新しいバッファーに反映されます。 新しいバッファーのコンテンツに変更を加えると、その内容が現在のバッファーに反映されます。 2 つのバッファーの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファーの位置は 0、容量とリミットはこのバッファー内に残っている double 数になります。 マークは定義されません。新しいバッファーは、現在のバッファーがダイレクトバッファーである場合に限りダイレクトバッファーになります。 また、現在のバッファーが読み取り専用バッファーである場合に限り読み取り専用バッファーになります。
public abstract DoubleBuffer duplicate()
新しいバッファーのコンテンツは、現在のバッファーのコンテンツと同じになります。現在のバッファーのコンテンツに変更を加えると、その内容が新しいバッファーに反映されます。 新しいバッファーのコンテンツに変更を加えると、その内容が現在のバッファーに反映されます。 2 つのバッファーの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファーの容量、リミット、位置、マークの値は、現在のバッファーの対応する値と同じになります。新しいバッファーは、現在のバッファーがダイレクトバッファーである場合に限りダイレクトバッファーになります。 また、現在のバッファーが読み取り専用バッファーである場合に限り読み取り専用バッファーになります。
public abstract DoubleBuffer asReadOnlyBuffer()
新しいバッファーのコンテンツは、現在のバッファーのコンテンツと同じになります。現在のバッファーのコンテンツに変更を加えると、その内容が新しいバッファーに反映されます。 しかし、新しいバッファー自体は読み取り専用であり、その共有コンテンツを変更することはできません。2 つのバッファーの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファーの容量、リミット、位置、マークの値は、現在のバッファーの対応する値と同じになります。
現在のバッファーが読み取り専用の場合、このメソッドの動作は duplicate
メソッドとまったく同じになります。
public abstract double get()
BufferUnderflowException
- バッファーの現在位置がリミット以上である場合public abstract DoubleBuffer put(double d)
現在のバッファーの現在位置に指定された float 値を書き込み、現在位置の値を増加します。
d
- 書き込まれる double 値
BufferOverflowException
- 現在のバッファーの現在位置がリミット以上である場合
ReadOnlyBufferException
- 現在のバッファーが読み込み専用バッファーである場合public abstract double get(int index)
index
- double 値の読み込み位置を示すインデックス
IndexOutOfBoundsException
- index が負の数である場合、またはバッファーのリミット以上である場合public abstract DoubleBuffer put(int index, double d)
現在のバッファーの指定されたインデックス位置に、指定された double 値を書き込みます。
index
- double 値の書き込み先を示すインデックスd
- 書き込まれる double 値
IndexOutOfBoundsException
- index が負の数である場合、またはバッファーのリミット以上である場合
ReadOnlyBufferException
- 現在のバッファーが読み込み専用バッファーである場合public DoubleBuffer get(double[] dst, int offset, int length)
このメソッドは、現在のバッファーから指定された配列へ double 値を転送します。このバッファー内に残っている double 数が要求に満たない場合 (つまり、length > remaining() である場合)、double は一切転送されず、BufferUnderflowException
がスローされます。
それ以外の場合、このメソッドは、現在のバッファーの現在位置から length 個の double 値を指定された配列の指定されたオフセット位置へコピーします。そのたびに、現在のバッファーの位置が length ずつ増加します。
このメソッドを src.get(dst, off, len) の形式で呼び出すと、次のループとまったく同じ結果になります。
for (int i = off; i < off + len; i++) dst[i] = src.get();ただし、現在のバッファー内に十分な数の double 値が存在することを最初に確認する動作は、このメソッドに固有です。 また、このメソッドのほうがループよりも効率的です。
dst
- double 値の書き込み先となる配列offset
- 最初の double 値の書き込み先となる配列内のオフセット。dst.length 以下の負でない値でなければならないlength
- 指定された配列に書き込まれる double 値の最大数。dst.length - offset 以下の負でない値でなければならない
BufferUnderflowException
- 現在のバッファー内に残っている double 値の数が length よりも少ない場合
IndexOutOfBoundsException
- offset パラメータと length パラメータの前提条件が満たされていない場合public DoubleBuffer get(double[] dst)
このメソッドは、現在のバッファーから指定された配列へ double 値を転送します。このメソッドを src.get(a) の形式で呼び出すと、次の呼び出しと同じ結果になります。
src.get(a, 0, a.length)
BufferUnderflowException
- 現在のバッファー内に残っている double 値の数が length よりも少ない場合public DoubleBuffer put(DoubleBuffer src)
このメソッドは、指定されたソースバッファー内に残っている double をこのバッファーへ転送します。ソースバッファー内に残っている double 数がこのバッファー内に残っている double 数よりも多い場合 (つまり、src.remaining() > remaining() である場合)、double は一切転送されず、BufferOverflowException
がスローされます。
それ以外の場合、このメソッドは、指定されたバッファーの現在位置から現在のバッファーの現在位置へ n = src.remaining() 個の double 値をコピーします。そのたびに、両方のバッファーの位置が n ずつ増加します。
このメソッドを dst.put(src) の形式で呼び出すと、次のループとまったく同じ結果になります。
while (src.hasRemaining()) dst.put(src.get());ただし、現在のバッファー内に十分な容量があることを最初に確認する動作は、このメソッドに固有です。 また、このメソッドのほうがループよりもずっと効率的です。
src
- double 値の読み込み先となるソースバッファー (現在のバッファー以外)
BufferOverflowException
- 現在のバッファーに、ソースバッファーの残りの double 値を格納できるだけの容量がない場合
IllegalArgumentException
- ソースバッファーとして現在のバッファーを指定した場合
ReadOnlyBufferException
- 現在のバッファーが読み込み専用バッファーである場合public DoubleBuffer put(double[] src, int offset, int length)
このメソッドは、指定されたソース配列からこのバッファーへ double を転送します。配列からコピーする double 数がこのバッファー内に残っている double 数より多い場合 (つまり、length > remaining() である場合)、double は一切転送されず、BufferOverflowException
がスローされます。
それ以外の場合、このメソッドは、指定された配列の指定されたオフセット位置から現在のバッファーの現在位置へ length 個の double 値をコピーします。そのたびに、現在のバッファーの位置が length ずつ増加します。
このメソッドを dst.put(src, off, len) の形式で呼び出すと、次のループとまったく同じ結果になります。
for (int i = off; i < off + len; i++) dst.put(a[i]);ただし、現在のバッファー内に十分な容量があることを最初に確認する動作は、このメソッドに固有です。 また、このメソッドのほうがループよりもずっと効率的です。
src
- double 値の読み込み先となる配列offset
- 最初の double 値の読み込み先となる配列内のオフセット。array.length 以下の負でない値でなければならないlength
- 指定された配列から読み取られる double 値の数。array.length - offset 以下の負でない値でなければならない
BufferOverflowException
- 現在のバッファー内に残っている容量が不足している場合
IndexOutOfBoundsException
- offset パラメータと length パラメータの前提条件が満たされていない場合
ReadOnlyBufferException
- 現在のバッファーが読み込み専用バッファーである場合public final DoubleBuffer put(double[] src)
このメソッドは、ソースとなる指定された double 配列のコンテンツ全体を現在のバッファーへ転送します。このメソッドを dst.put(a) の形式で呼び出すと、次の呼び出しと同じ結果になります。
dst.put(a, 0, a.length)
BufferOverflowException
- 現在のバッファー内に残っている容量が不足している場合
ReadOnlyBufferException
- 現在のバッファーが読み込み専用バッファーである場合public final boolean hasArray()
このメソッドの戻り値が true であれば、array
メソッドおよび arrayOffset
メソッドを安全に呼び出すことができます。
Buffer
内の hasArray
public final double[] array()
現在のバッファーのコンテンツに変更を加えると、返される配列のコンテンツも変更されます。その逆も同様です。
このメソッドを呼び出す前に hasArray
メソッドを呼び出し、現在のバッファーがアクセス可能な補助配列を持っていることを確認します。
Buffer
内の array
ReadOnlyBufferException
- 現在のバッファーが配列に連動しており、しかも読み込み専用である場合
UnsupportedOperationException
- 現在のバッファーがアクセス可能な配列を利用しない場合public final int arrayOffset()
現在のバッファーが配列に連動していれば、その位置 p が配列のインデックス p + arrayOffset() と一致します。
このメソッドを呼び出す前に hasArray
メソッドを呼び出し、現在のバッファーがアクセス可能な補助配列を持っていることを確認します。
Buffer
内の arrayOffset
ReadOnlyBufferException
- 現在のバッファーが配列に連動しており、しかも読み込み専用である場合
UnsupportedOperationException
- 現在のバッファーがアクセス可能な配列を利用しない場合public abstract DoubleBuffer compact()
バッファーの現在位置からリミットまでの間に double 値が存在する場合、これらをバッファーの先頭にコピーします。つまり、インデックス位置 p = position() の double 値がインデックス 0 にコピーされ、インデックス位置 p + 1 の double 値がインデックス 1 にコピーされるということです。 インデックス位置 limit() - 1 の double 値がインデックス n = limit() - 1 - p にコピーされるまで、同様の処理が繰り返されます。最終的にバッファーの位置は n+1 に設定され、リミットは容量の値と等しくなります。マークは破棄されます。
バッファーの位置は、0 ではなく、コピーされる double 値の数と等しくなります。 したがって、このメソッドを呼び出したあと、すぐに別の相対「put」メソッドを呼び出すことができます。
ReadOnlyBufferException
- 現在のバッファーが読み込み専用バッファーである場合public abstract boolean isDirect()
Buffer
内の isDirect
public String toString()
Object
内の toString
public int hashCode()
double バッファーのハッシュコードは、バッファー内に残っている要素、すなわち position() 〜 limit() - 1 の要素だけに依存します。
バッファーのハッシュコードはコンテンツ依存型です。 今後バッファーのコンテンツが変更されないことが明らかでないかぎり、バッファーをハッシュマップその他のデータ構造のキーとして使用することは避けてください。
Object
内の hashCode
Object.equals(java.lang.Object)
,
Hashtable
public boolean equals(Object ob)
2 つの double バッファーは、次の場合にかぎり等価です。
要素の型が同じである
バッファー内に残っている要素数が同じである
バッファー内に残っている要素のシーケンス (開始位置とは無関係) が各点で等しい (pointwise equal)
double バッファーが、その他の型のオブジェクトと等価になることはありません。
Object
内の equals
ob
- 現在のバッファーと比較するオブジェクト
Object.hashCode()
,
Hashtable
public int compareTo(DoubleBuffer that)
2 つの double バッファーを比較する際は、バッファー内に残っている要素のシーケンスが辞書順に比較されます。このとき、双方のバッファー内に残っている各シーケンスの開始位置は考慮されません。
このとき、双方のバッファー内に残っている各シーケンスの開始位置は考慮されません。
Comparable<DoubleBuffer>
内の compareTo
that
- the object to be compared.
public abstract ByteOrder order()
割り当てまたは既存の double 配列のラップによって作成された double バッファーのバイト順序は、基本となるハードウェアの
と同じになります。byte バッファーのビューとして作成された double バッファーのバイト順序は、ビューを作成した時点の byte バッファーのバイト順序と同じになります。 ネイティブのバイト順序
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。