FastElementSequence

classe final pública FastElementSequence

Uma sequência que recicla a mesma instância NdArray ao iterar seus elementos

Construtores Públicos

FastElementSequence ( AbstractNdArray <T, U> ndArray, int dimensionIdx, elemento U, DataBufferWindow <?> ElementWindow)

Métodos Públicos

NdArraySequence <U>
asSlices ()
Retorna cada elemento como uma nova fatia.
vazio
forEachIndexed (BiConsumer <long [], U> consumidor)
Iterator <U>

Métodos herdados

Construtores Públicos

public FastElementSequence ( AbstractNdArray <T, U> ndArray, int dimensionIdx, elemento U, DataBufferWindow <?> elementWindow)

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 de 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 .

Em alguns casos, porém, pode ser preferível desativar essas otimizações para garantir que cada elemento retornado seja uma nova fatia da matriz original. Por exemplo, se um ou mais elementos visitados devem viver 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

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

public Iterator <U> iterator ()