Una secuencia que recicla la misma instancia de NdArray
al iterar sus elementos
Constructores públicos
FastElementSequence ( AbstractNdArray <T, U> ndArray, int dimensionIdx, elemento U, DataBufferWindow <?> ElementWindow) |
Métodos públicos
NdArraySequence <U> | asSlices () Devuelve cada elemento como un nuevo segmento. |
vacío | forEachIndexed (BiConsumer <long [], U> consumidor) |
Iterador <U> | iterador () |
Métodos heredados
Constructores públicos
public FastElementSequence ( AbstractNdArray <T, U> ndArray, int dimensionIdx, elemento U, DataBufferWindow <?> elementWindow)
Métodos públicos
public NdArraySequence <U> 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 dichas optimizaciones para garantizar 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 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