|
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
- 比較対象のオブジェクト
public abstract ByteOrder order()
割り当てまたは既存の double 配列のラップによって作成された double バッファーのバイト順序は、基本となるハードウェアの
と同じになります。byte バッファーのビューとして作成された double バッファーのバイト順序は、ビューを作成した時点の byte バッファーのバイト順序と同じになります。 ネイティブのバイト順序
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。