- すべてのスーパー・インタフェース:
MemoryLayoutPREVIEW
public sealed interface SequenceLayout extends MemoryLayoutPREVIEW
SequenceLayout
は、JavaプラットフォームのプレビューAPIです。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
指定された「要素レイアウト」の繰返しを示す複合レイアウト。 繰返し回数は、順序レイアウト「エレメント件数」と呼ばれます。 有限シーケンスは、順序レイアウト要素レイアウトが順序レイアウト要素数と等しい回数繰り返されるグループ・レイアウトと考えることができます。 つまり、次のレイアウトになります:
次のレイアウトと同等です:
MemoryLayout.sequenceLayout(3, ValueLayout.JAVA_INT.withOrder(ByteOrder.BIG_ENDIAN));
MemoryLayout.structLayout(
ValueLayout.JAVA_INT.withOrder(ByteOrder.BIG_ENDIAN),
ValueLayout.JAVA_INT.withOrder(ByteOrder.BIG_ENDIAN),
ValueLayout.JAVA_INT.withOrder(ByteOrder.BIG_ENDIAN));
- 実装要件:
- このクラスは、不変、スレッド・セーフおよびvalue-basedです。
- 導入されたバージョン:
- 19
-
ネストされたクラスのサマリー
インタフェースjava.lang.foreign.MemoryLayoutPREVIEWで宣言されたネストされたクラス/インタフェース
MemoryLayout.PathElementPREVIEW
-
メソッドのサマリー
修飾子と型メソッド説明long
この順序レイアウトの要素数を返します。この順序レイアウトに関連付けられた要素レイアウトを返します。flatten()
フラット化された順序レイアウトを返します。reshape
(long... elementCounts) この順序レイアウトの要素を多ディメンション順序レイアウトに再配置します。withBitAlignment
(long bitAlignment) このレイアウトと同じサイズおよび名前を持つ同じタイプのメモリー・レイアウトを返しますが、指定された整列制約(ビット単位)を使用します。withElementCount
(long elementCount) このシーケンス・レイアウトと同じ要素レイアウト、位置合せ制約および名前で、指定された要素数を持つ順序レイアウトを返します。このレイアウトと同じサイズおよび整列制約を持つ、指定された名前の同じタイプのメモリー・レイアウトを返します。インタフェースjava.lang.foreign.MemoryLayoutPREVIEWで宣言されたメソッド
bitAlignment, bitOffset, bitOffsetHandle, bitSize, byteAlignment, byteOffset, byteOffsetHandle, byteSize, equals, hashCode, name, select, sliceHandle, toString, varHandle
-
メソッドの詳細
-
elementLayout
MemoryLayoutPREVIEW elementLayout()この順序レイアウトに関連付けられた要素レイアウトを返します。- 戻り値:
- この順序レイアウトに関連付けられた要素レイアウト
-
elementCount
long elementCount()この順序レイアウトの要素数を返します。- 戻り値:
- この順序レイアウトの要素数
-
withElementCount
SequenceLayoutPREVIEW withElementCount(long elementCount) このシーケンス・レイアウトと同じ要素レイアウト、位置合せ制約および名前で、指定された要素数を持つ順序レイアウトを返します。- パラメータ:
elementCount
- 新規要素数。- 戻り値:
- 指定された要素数を含む順序レイアウト。
- 例外:
IllegalArgumentException
-elementCount < 0
の場合。
-
reshape
SequenceLayoutPREVIEW reshape(long... elementCounts) この順序レイアウトの要素を多ディメンション順序レイアウトに再配置します。 結果のレイアウトは、この順序レイアウト(flatten()
を参照してください)のフラット化された投影の要素レイアウトが、指定された要素数に従って1つ以上のネストされた順序レイアウトに再配置される順序レイアウトです。 この変換では、レイアウト・サイズが保持されます。つまり、指定された要素数を乗算すると、このシーケンス・レイアウトのフラット化された投影と同じ要素数が生成される必要があります。たとえば、次のような種類のシーケンス・レイアウトがあるとします:
var seq = MemoryLayout.sequenceLayout(4, MemoryLayout.sequenceLayout(3, ValueLayout.JAVA_INT));
seq.reshape(2, 6)
をコールすると、次のシーケンス・レイアウトが生成されます:var reshapeSeq = MemoryLayout.sequenceLayout(2, MemoryLayout.sequenceLayout(6, ValueLayout.JAVA_INT));
指定された要素数のいずれかが特別な値
-1
の場合、その位置の要素数は、残りの要素数およびこのレイアウトのフラット化された投影の要素数から推測されます。 たとえば、前述のreshapeSeq
に相当するレイアウトは、次の方法で計算することもできます:var reshapeSeqImplicit1 = seq.reshape(-1, 6); var reshapeSeqImplicit2 = seq.reshape(2, -1);
- パラメータ:
elementCounts
- 要素数の配列。この配列の最大数は-1
です。- 戻り値:
- この順序レイアウト(
flatten()
を参照してください)のフラット化された投影の要素レイアウトが1つ以上のネストされた順序レイアウトに再配置される順序レイアウト。 - 例外:
IllegalArgumentException
- 複数の要素数が-1
に設定されている場合、または1つ以上の要素数が<= 0
(ただし、-1
以外)である場合、または必要な推論後に要素数を乗算しても、この順序レイアウトのフラット化された投影と同じ要素数は得られません。
-
flatten
SequenceLayoutPREVIEW flatten()フラット化された順序レイアウトを返します。 戻される順序レイアウトの要素レイアウトは、この順序レイアウトの要素レイアウトを再帰的にトラバースすることによって検出される最初の非順序要素レイアウトです。 この変換によってレイアウト・サイズが保持されます。このシーケンスのレイアウトにネストされたシーケンスのレイアウトがドロップされ、返されたシーケンスのレイアウトにその要素数が組み込まれます。 たとえば、次のような種類のシーケンス・レイアウトがあるとします:var seq = MemoryLayout.sequenceLayout(4, MemoryLayout.sequenceLayout(3, ValueLayout.JAVA_INT));
seq.flatten()
をコールすると、次のシーケンス・レイアウトが生成されます:var flattenedSeq = MemoryLayout.sequenceLayout(12, ValueLayout.JAVA_INT);
- 戻り値:
- このレイアウト(ただし、要素数が異なる可能性があります。)と同じサイズの順序レイアウト。要素レイアウトは順序レイアウトではありません。
-
withName
SequenceLayoutPREVIEW withName(String name) インタフェースからコピーされた説明:MemoryLayout
このレイアウトと同じサイズおよび整列制約を持つ、指定された名前の同じタイプのメモリー・レイアウトを返します。- 定義:
- インタフェース
MemoryLayoutPREVIEW
内のwithName
- パラメータ:
name
- レイアウト名。- 戻り値:
- 指定された名前のメモリー・レイアウト。
- 関連項目:
-
withBitAlignment
SequenceLayoutPREVIEW withBitAlignment(long bitAlignment) インタフェースからコピーされた説明:MemoryLayout
このレイアウトと同じサイズおよび名前を持つ同じタイプのメモリー・レイアウトを返しますが、指定された整列制約(ビット単位)を使用します。- 定義:
- インタフェース
MemoryLayoutPREVIEW
内のwithBitAlignment
- パラメータ:
bitAlignment
- レイアウト位置合せ制約。ビットで表されます。- 戻り値:
- 指定された境界整列制約を持つメモリー・レイアウト。
-
SequenceLayout
を使用できます。