NdArraySequence

パブリック インターフェイスNdArraySequence
既知の間接サブクラス

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)

この反復の各要素とそれぞれの座標にアクセスします。

重要: 座標は変更可能であり、パフォーマンスを向上させるために反復中に再利用される可能性があるため、コンシューマー メソッドは座標への参照を保持すべきではありません。

パラメーター
消費者要素ごとに呼び出すメソッド