目次へ

1.3. バッファの作成方法

バッファの作成する方法は大きく分けて3種類あります。

1. 新たに容量を割り当ててバッファを作成する

バッファクラスのstaticメソッドであるallocateメソッドを使用します。たとえば、新しいIntBufferを作るには次のようにします。引数には作成するバッファの容量(capacity)を指定します。

IntBuffer buffer = IntBuffer.allocate(100);
2. 既存の配列や文字列をラップしてバッファを作成する

バッファクラスのstaticメソッドであるwrapメソッドを使用します。

たとえばLongBufferクラスには次のメソッドが存在します。offsetとlengthで配列の一部分に対するバッファも作成することができます。

static LongBuffer wrap(double[] array)
static LongBuffer wrap(double[] array, int offset, int length)

CharBufferクラスはString型やStringBuffer型の文字列をラップするメソッドも用意されています。

static CharBuffer wrap(CharSequence csq)
static CharBuffer wrap(CharSequence csq, int start, int end)

CharSequenceは文字列を表すインタフェースです。String、StringBuffer、CharBufferがCharSequenceを実装しています。CharSequenceはJDK1.4で導入されたインタフェースです。

3. 既存のbyteバッファに対するビューを作成する

ByteBufferクラスには、各プリミティブ型バッファのビューを作成するためのメソッドが用意されています。元のByteBufferとビューである各プリミティブ型のバッファは同じ記憶域を共有します。ただし、次の項で説明する「位置」や「リミット」等のプロパティはそれぞれ独立して持っています。

CharBuffer asCharBuffer()
DoubleBuffer asDoubeBuffer()
FloatBuffer asFloatBuffer()
IntBuffer asIntBuffer()
LongBuffer asLongBuffer()
ShortBuffer asShortBuffer()

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp