既知の間接サブクラス FastElementSequence <T、U はNdArray <T>> を拡張、 SingleElementSequence <T、U はNdArray <T>> を拡張、 SlicingElementSequence <T、U はNdArray <T>> を拡張 |
N 次元配列の要素のシーケンス。
NdArraySequence
、指定された次元でNdArray
を走査し、その各要素にアクセスするために使用されます。たとえば、 [x, y]
軸上のnxm
行列の場合、要素は次の順序で反復されます。
x 0 y 0 、 x 0 y 1 、 ...、 x 0 y m-1 、 x 1 y 0 、 x 1 y 1 、 ...、 x n-1 y m-1
パブリックメソッド
抽象NdArraySequence <T> | asスライス() 各要素を新しいスライスとして返します。 |
抽象的な空白 | forEachIndexed (BiConsumer<long[], T> コンシューマー) この反復の各要素とそれぞれの座標にアクセスします。 |
継承されたメソッド
パブリックメソッド
public abstract NdArraySequence <T> asSlices ()
各要素を新しいスライスとして返します。
従来の Java コレクションとは異なり、 NdArraySequence
の要素は一時的です。つまり、新しいNdArray
インスタンスが反復ごとに割り当てられます。パフォーマンスを向上させるために、 DataBufferWindow
を使用して同じインスタンスをリサイクルして、このシーケンスのすべての要素を表示できます。
ただし、場合によっては、返される各要素が元の配列の新しいスライスであることを確認するために、このような最適化を無効にした方がよい場合もあります。たとえば、訪問した 1 つ以上の要素がシーケンス反復の範囲を超えて存在する必要がある場合、 asSlices()
シーケンスによって返されるすべての要素が一意のインスタンスであることを確認します。
final List<IntNdArray> vectors = new ArrayList<>();
IntNdArray matrix = NdArrays.ofInts(Shape.of(6, 6));
ndArray.elements(0).forEach(e -> vectors::add); // Not safe, as `e` might always be the same recycled instance
ndArray.elements(0).asSlices().forEach(e -> vectors::add); // Safe, each `e` is a distinct NdArray instance
返品
- 新しいスライスとして反復された各要素を返すシーケンス
関連項目
public abstract void forEachIndexed (BiConsumer<long[], T> Consumer)
この反復の各要素とそれぞれの座標にアクセスします。
重要: 座標は変更可能であり、パフォーマンスを向上させるために反復中に再利用される可能性があるため、コンシューマ メソッドは座標への参照を保持すべきではありません。
パラメータ
消費者 | 要素ごとに呼び出すメソッド |
---|