SlicingElementSequence

classe finale publique SlicingElementSequence

Une séquence créant une nouvelle instance NdArray (tranche) pour chaque élément d'une itération

Constructeurs Publics

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

Méthodes publiques

NdArraySequence <U>
commeTranches ()
Renvoie chaque élément sous la forme d'une nouvelle tranche.
vide
forEachIndexed (Consumer BiConsumer<long[], U> consommateur)
Itérateur<U>

Méthodes héritées

Constructeurs Publics

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

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

Méthodes publiques

public NdArraySequence <U> asSlices ()

Renvoie chaque élément sous la forme d'une nouvelle tranche.

Contrairement aux collections Java conventionnelles, les éléments d'un NdArraySequence sont transitoires, c'est-à-dire que de nouvelles instances NdArray sont allouées à chaque itération. Pour améliorer les performances, la même instance peut être recyclée pour afficher tous les éléments de cette séquence, à l'aide d'un DataBufferWindow .

Dans certains cas cependant, il peut être préférable de désactiver ces optimisations pour garantir que chaque élément renvoyé est une nouvelle tranche du tableau d'origine. Par exemple, si un ou plusieurs éléments visités doivent vivre au-delà de la portée de l'itération de la séquence, asSlices() s'assure que tous les éléments renvoyés par la séquence sont des instances uniques.

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
 

Retours
  • une séquence qui renvoie chaque élément itéré comme une nouvelle tranche

public void forEachIndexed (BiConsumer<long[], U> consommateur)

public Iterator<U> itérateur ()