NdArraySequence

giao diện công cộng NdArraySequence
Các lớp con gián tiếp đã biế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ử