SlicingElementSequence

パブリック最終クラスSlicingElementSequence

反復の各要素に対して新しいNdArrayインスタンス (スライス) を作成するシーケンス

パブリックコンストラクター

SlicingElementSequence ( AbstractNdArray <T, U> ndArray, int DimensionsIdx)
SlicingElementSequence ( AbstractNdArray <T, U> ndArray, int DimensionsIdx, DimensionalSpace elementDimensions)

パブリックメソッド

NdArraySequence <U>
asスライス()
各要素を新しいスライスとして返します。
空所
forEachIndexed (BiConsumer<long[], U> コンシューマー)
イテレータ<U>

継承されたメソッド

パブリックコンストラクター

public SlicingElementSequence ( AbstractNdArray <T, U> ndArray, int DimensionsIdx)

public SlicingElementSequence ( AbstractNdArray <T, U> ndArray, int DimensionsIdx, DimensionalSpace elementDimensions)

パブリックメソッド

public NdArraySequence <U> 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 void forEachIndexed (BiConsumer<long[], U> Consumer)

public Iterator<U> iterator ()