Subclases indirectas conocidas FastElementSequence <T, U extiende NdArray <T>>, SingleElementSequence <T, U extiende NdArray <T>>, SlicingElementSequence <T, U extiende NdArray <T>> |
Una secuencia de elementos de una matriz N-dimensional.
Una NdArraySequence
se utiliza para atravesar una NdArray
en una dimensión determinada y visitar cada uno de sus elementos. Por ejemplo, dada una matriz nxm
en los ejes [x, y]
, los elementos se iteran en el siguiente orden:
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étodos públicos
resumen NdArraySequence <T> | asSlices () Devuelve cada elemento como un nuevo segmento. |
vacío abstracto | forEachIndexed (BiConsumer <long [], T> consumidor) Visite cada elemento de esta iteración y sus respectivas coordenadas. |
Métodos heredados
Métodos públicos
público abstracto NdArraySequence <T> asSlices ()
Devuelve cada elemento como un nuevo segmento.
A diferencia de las colecciones Java convencionales, los elementos de una NdArraySequence
son transitorios, es decir, se asignan nuevas instancias de NdArray
para cada iteración. Para mejorar el rendimiento, la misma instancia se puede reciclar para ver todos los elementos de esta secuencia, utilizando un DataBufferWindow
.
En algunos casos, sin embargo, puede ser preferible deshabilitar tales optimizaciones para asegurarse de que cada elemento devuelto sea una nueva porción de la matriz original. Por ejemplo, si uno o más elementos visitados deben vivir más allá del alcance de la iteración de la secuencia, asSlices()
se asegura de que todos los elementos devueltos por la secuencia sean instancias únicas.
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
Devoluciones
- una secuencia que devuelve cada elemento iterado como un nuevo segmento
Ver también
public abstract void forEachIndexed (BiConsumer <long [], T> consumidor)
Visite cada elemento de esta iteración y sus respectivas coordenadas.
Importante: el método del consumidor no debe mantener una referencia a las coordenadas, ya que pueden ser mutables y reutilizarse durante la iteración para mejorar el rendimiento.
Parámetros
consumidor | método para invocar para cada elemento |
---|