알려진 간접 하위 클래스 FastElementSequence <T, U 확장 NdArray <T>>, SingleElementSequence <T, U 확장 NdArray <T>>, SlicingElementSequence <T, U 확장 NdArray <T>> |
N차원 배열의 요소 시퀀스입니다.
NdArraySequence
주어진 차원에서 NdArray
탐색하고 각 요소를 방문하는 데 사용됩니다. 예를 들어, [x, y]
축에 nxm
행렬이 있는 경우 요소는 다음 순서로 반복됩니다.
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
공개 방법
추상 NdArraySequence <T> | asSlices () 각 요소를 새 슬라이스로 반환합니다. |
추상적인 공백 | forEachIndexed (BiConsumer<long[], T> 소비자) 이 반복의 각 요소와 해당 좌표를 방문하세요. |
상속된 메서드
공개 방법
공개 추상 NdArraySequence <T> asSlices ()
각 요소를 새 슬라이스로 반환합니다.
기존 Java 컬렉션과 달리 NdArraySequence
의 요소는 일시적입니다. 즉, 각 반복마다 새로운 NdArray
인스턴스가 할당됩니다. 성능을 향상시키기 위해 DataBufferWindow
를 사용하여 동일한 인스턴스를 재활용하여 이 시퀀스의 모든 요소를 볼 수 있습니다.
그러나 어떤 경우에는 반환된 각 요소가 원래 배열의 새로운 조각인지 확인하기 위해 이러한 최적화를 비활성화하는 것이 더 나을 수도 있습니다. 예를 들어, 방문한 하나 이상의 요소가 시퀀스 반복 범위를 벗어나야 하는 경우 asSlices()
시퀀스에서 반환된 모든 요소가 고유한 인스턴스인지 확인합니다.
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
보고
- 새로운 슬라이스로 반복되는 각 요소를 반환하는 시퀀스
공개 추상 무효 forEachIndexed (BiConsumer<long[], T> 소비자)
이 반복의 각 요소와 해당 좌표를 방문하세요.
중요: 성능 향상을 위해 반복 중에 좌표가 변경 가능하고 재사용될 수 있으므로 소비자 메서드는 좌표에 대한 참조를 유지해서는 안 됩니다.
매개변수
소비자 | 각 요소에 대해 호출하는 메서드 |
---|
알려진 간접 하위 클래스 FastElementSequence <T, U 확장 NdArray <T>>, SingleElementSequence <T, U 확장 NdArray <T>>, SlicingElementSequence <T, U 확장 NdArray <T>> |
N차원 배열의 요소 시퀀스입니다.
NdArraySequence
주어진 차원에서 NdArray
탐색하고 각 요소를 방문하는 데 사용됩니다. 예를 들어, [x, y]
축에 nxm
행렬이 있는 경우 요소는 다음 순서로 반복됩니다.
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
공개 방법
추상 NdArraySequence <T> | asSlices () 각 요소를 새 슬라이스로 반환합니다. |
추상적인 공백 | forEachIndexed (BiConsumer<long[], T> 소비자) 이 반복의 각 요소와 해당 좌표를 방문하세요. |
상속된 메서드
공개 방법
공개 추상 NdArraySequence <T> asSlices ()
각 요소를 새 슬라이스로 반환합니다.
기존 Java 컬렉션과 달리 NdArraySequence
의 요소는 일시적입니다. 즉, 각 반복마다 새로운 NdArray
인스턴스가 할당됩니다. 성능을 향상시키기 위해 DataBufferWindow
를 사용하여 동일한 인스턴스를 재활용하여 이 시퀀스의 모든 요소를 볼 수 있습니다.
그러나 어떤 경우에는 반환된 각 요소가 원래 배열의 새로운 조각인지 확인하기 위해 이러한 최적화를 비활성화하는 것이 더 나을 수도 있습니다. 예를 들어, 방문한 하나 이상의 요소가 시퀀스 반복 범위를 벗어나야 하는 경우 asSlices()
시퀀스에서 반환된 모든 요소가 고유한 인스턴스인지 확인합니다.
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
보고
- 새로운 슬라이스로 반복되는 각 요소를 반환하는 시퀀스
공개 추상 무효 forEachIndexed (BiConsumer<long[], T> 소비자)
이 반복의 각 요소와 해당 좌표를 방문하세요.
중요: 성능 향상을 위해 반복 중에 좌표가 변경 가능하고 재사용될 수 있으므로 소비자 메서드는 좌표에 대한 참조를 유지해서는 안 됩니다.
매개변수
소비자 | 각 요소에 대해 호출하는 메서드 |
---|