Các lớp con gián tiếp đã biết FastElementSequence <T, U mở rộng NdArray <T>>, SingleElementSequence <T, U mở rộng NdArray <T>>, SlicingElementSequence <T, U mở rộng NdArray <T>> |
Dãy các phần tử của mảng N chiều.
Một NdArraySequence
được sử dụng để duyệt NdArray
trong một chiều nhất định và truy cập từng phần tử của nó. Ví dụ: cho ma trận nxm
trên trục [x, y]
, các phần tử được lặp theo thứ tự sau:
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
Phương pháp công cộng
trừu tượng NdArraySequence <T> | asSlices () Trả về mỗi phần tử dưới dạng một slice mới. |
khoảng trống trừu tượng | forEachIndexed (người tiêu dùng BiConsumer<long[], T>) Truy cập từng phần tử của lần lặp này và tọa độ tương ứng của chúng. |
Phương pháp kế thừa
Phương pháp công cộng
tóm tắt công khai NdArraySequence <T> asSlices ()
Trả về mỗi phần tử dưới dạng một slice mới.
Không giống như các bộ sưu tập Java thông thường, các phần tử của NdArraySequence
là tạm thời, tức là các phiên bản NdArray
mới được phân bổ cho mỗi lần lặp. Để cải thiện hiệu suất, phiên bản tương tự có thể được tái chế để xem tất cả các phần tử của chuỗi này bằng cách sử dụng DataBufferWindow
.
Tuy nhiên, trong một số trường hợp, tốt nhất nên tắt các tối ưu hóa đó để đảm bảo rằng mỗi phần tử được trả về là một phần mới của mảng ban đầu. Ví dụ: nếu một hoặc nhiều phần tử được truy cập phải nằm ngoài phạm vi của phép lặp trình tự, thì asSlices()
đảm bảo rằng tất cả các phần tử được trình tự trả về đều là các phiên bản duy nhất.
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
Trả lại
- một chuỗi trả về từng phần tử được lặp lại dưới dạng một lát cắt mới
Xem thêm
khoảng trống trừu tượng công khai choEachIndexed (người tiêu dùng BiConsumer<long[], T>)
Truy cập từng phần tử của lần lặp này và tọa độ tương ứng của chúng.
Quan trọng: phương thức tiêu dùng không nên giữ tham chiếu đến tọa độ vì chúng có thể thay đổi và sử dụng lại trong quá trình lặp để cải thiện hiệu suất.
Thông số
người tiêu dùng | phương thức gọi cho từng phần tử |
---|