Sous-classes indirectes connues FastElementSequence <T, U étend NdArray <T>>, SingleElementSequence <T, U étend NdArray <T>>, SlicingElementSequence <T, U étend NdArray <T>> |
Une séquence d'éléments d'un tableau à N dimensions.
Un NdArraySequence
est utilisé pour parcourir un NdArray
dans une dimension donnée et visiter chacun de ses éléments. Par exemple, étant donné une matrice nxm
sur les axes [x, y]
, les éléments sont itérés dans l'ordre suivant :
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
Méthodes publiques
abstrait NdArraySequence <T> | commeTranches () Renvoie chaque élément sous la forme d'une nouvelle tranche. |
vide abstrait | forEachIndexed (Consumer BiConsumer<long[], T> consommateur) Visitez chaque élément de cette itération et leurs coordonnées respectives. |
Méthodes héritées
Méthodes publiques
résumé public NdArraySequence <T> 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
Voir aussi
public abstract void forEachIndexed (BiConsumer<long[], T> consommateur)
Visitez chaque élément de cette itération et leurs coordonnées respectives.
Important : la méthode consommateur ne doit pas conserver de référence aux coordonnées car elles peuvent être mutables et réutilisées lors de l'itération pour améliorer les performances.
Paramètres
consommateur | méthode à invoquer pour chaque élément |
---|