|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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
- 使用するサブ配列のオフセット。array.length 以下の負でない値でなければならない。
新しいバッファーの位置は、この値に設定されるlength
- 使用するサブ配列の長さ。 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 値の書き込み先となる配列内のオフセット。dst.length 以下の負でない値でなければならないlength
- 指定された配列に書き込まれる float 値の最大数。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 値の読み込み先となる配列内のオフセット。array.length 以下の負でない値でなければならないlength
- 指定された配列から読み取られる float 値の数。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
メソッドを安全に呼び出すことができます。
Buffer
内の hasArray
public final float[] array()
現在のバッファーのコンテンツに変更を加えると、返される配列のコンテンツも変更されます。その逆も同様です。
このメソッドを呼び出す前に hasArray
メソッドを呼び出し、現在のバッファーがアクセス可能な補助配列を持っていることを確認します。
Buffer
内の array
ReadOnlyBufferException
- 現在のバッファーが配列に連動しており、しかも読み込み専用である場合
UnsupportedOperationException
- 現在のバッファーがアクセス可能な配列を利用しない場合public final int arrayOffset()
現在のバッファーが配列に連動していれば、その位置 p が配列のインデックス p + arrayOffset() と一致します。
このメソッドを呼び出す前に hasArray
メソッドを呼び出し、現在のバッファーがアクセス可能な補助配列を持っていることを確認します。
Buffer
内の arrayOffset
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()
Buffer
内の 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
- 比較対象のオブジェクト
public abstract ByteOrder order()
割り当てまたは既存の float 配列のラップによって作成された float バッファーのバイト順序は、基本となるハードウェアの
と同じになります。byte バッファーのビューとして作成された float バッファーのバイト順序は、ビューを作成した時点の byte バッファーのバイト順序と同じになります。 ネイティブのバイト順序
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。