Sekwencja tworząca nową instancję NdArray
(wycinek) dla każdego elementu iteracji
Konstruktorzy publiczni
SlicingElementSequence ( AbstractNdArray <T, U> ndArray, int wymiarIdx) | |
SlicingElementSequence ( AbstractNdArray <T, U> ndArray, int wymiarIdx, DimensionalSpace elementDimensions) |
Metody publiczne
Sekwencja NdArray <U> | jako plastry () Zwraca każdy element jako nowy plasterek. |
próżnia | forEachIndexed (BiConsumer<long[], U> konsument) |
Iterator<U> | iterator () |
Metody dziedziczone
Konstruktorzy publiczni
public SlicingElementSequence ( AbstractNdArray <T, U> ndArray, int wymiarIdx, DimensionalSpace elementDimensions)
Metody publiczne
public NdArraySequence <U> asSlices ()
Zwraca każdy element jako nowy plasterek.
W przeciwieństwie do konwencjonalnych kolekcji Java, elementy NdArraySequence
są przejściowe, tj. dla każdej iteracji przydzielane są nowe instancje NdArray
. Aby poprawić wydajność, tę samą instancję można odtworzyć w celu wyświetlenia wszystkich elementów tej sekwencji przy użyciu DataBufferWindow
.
Jednak w niektórych przypadkach lepszym rozwiązaniem może być wyłączenie takich optymalizacji, aby mieć pewność, że każdy zwrócony element będzie nowym wycinkiem oryginalnej tablicy. Na przykład, jeśli jeden lub więcej odwiedzonych elementów musi wykraczać poza zakres iteracji sekwencji, asSlices()
upewnia się, że wszystkie elementy zwrócone przez sekwencję są unikalnymi instancjami.
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
Powroty
- sekwencja zwracająca każdy element iterowany jako nowy wycinek