Uma sequência criando uma nova instância NdArray
(fatia) para cada elemento de uma iteração
Construtores Públicos
SlicingElementSequence ( AbstractNdArray <T, U> ndArray, int dimensionIdx) | |
SlicingElementSequence ( AbstractNdArray <T, U> ndArray, int dimensionIdx, DimensionalSpace elementDimensions) |
Métodos Públicos
NdArraySequence <U> | asfatias () Retorna cada elemento como uma nova fatia. |
vazio | forEachIndexed (BiConsumer<long[], U> consumidor) |
Iterador<U> | iterador () |
Métodos herdados
Construtores Públicos
public SlicingElementSequence ( AbstractNdArray <T, U> ndArray, int dimensionIdx, DimensionalSpace elementDimensions)
Métodos Públicos
public NdArraySequence <U> asSlices ()
Retorna cada elemento como uma nova fatia.
Ao contrário das coleções Java convencionais, os elementos de um NdArraySequence
são transitórios, ou seja, novas instâncias NdArray
são alocadas para cada iteração. Para melhorar o desempenho, a mesma instância pode ser reciclada para visualizar todos os elementos desta sequência, usando um DataBufferWindow
.
Porém, em alguns casos, pode ser preferível desabilitar tais otimizações para garantir que cada elemento retornado seja uma nova fatia da matriz original. Por exemplo, se um ou mais elementos visitados devem estar além do escopo da iteração da sequência, asSlices()
garante que todos os elementos retornados pela sequência sejam instâncias ú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
Devoluções
- uma sequência que retorna cada elemento iterado como uma nova fatia