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