パブリック最終クラスFastElementSequence
要素を反復するときに同じNdArrayインスタンスをリサイクルするシーケンス
パブリックコンストラクター
FastElementSequence ( AbstractNdArray <T, U> ndArray、int dimensionIdx、U 要素、 DataBufferWindow <?> elementWindow) |
パブリックメソッド
| NdArraySequence <U> | asスライス() 各要素を新しいスライスとして返します。 |
| 空所 | forEachIndexed (BiConsumer<long[], U> コンシューマ) |
| イテレータ<U> | イテレータ() |
継承されたメソッド
パブリックコンストラクター
public FastElementSequence ( AbstractNdArray <T, U> ndArray, int DimensionsIdx, U 要素, DataBufferWindow <?> elementWindow)
パブリックメソッド
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
返品
- 新しいスライスとして反復された各要素を返すシーケンス