NdArraySequence

antarmuka publik NdArraySequence
Subkelas Tidak Langsung yang Diketahui

Urutan elemen array berdimensi N.

NdArraySequence digunakan untuk melintasi NdArray dalam dimensi tertentu dan mengunjungi setiap elemennya. Misalnya, jika diberi matriks nxm pada sumbu [x, y] , elemen akan diiterasi dengan urutan sebagai berikut:

x 0 kamu 0 , x 0 kamu 1 , ..., x 0 kamu m-1 , x 1 kamu 0 , x 1 kamu 1 , ..., x n-1 kamu m-1

Metode Publik

abstrak NdArraySequence <T>
sebagai Irisan ()
Mengembalikan setiap elemen sebagai irisan baru.
kekosongan abstrak
forEachIndexed (BiConsumer<long[], T> konsumen)
Kunjungi setiap elemen iterasi ini dan koordinatnya masing-masing.

Metode Warisan

Metode Publik

abstrak publik NdArraySequence <T> asSlices ()

Mengembalikan setiap elemen sebagai irisan baru.

Tidak seperti koleksi Java konvensional, elemen NdArraySequence bersifat sementara, yaitu instance NdArray baru dialokasikan untuk setiap iterasi. Untuk meningkatkan performa, instance yang sama dapat didaur ulang untuk melihat semua elemen urutan ini, menggunakan DataBufferWindow .

Namun dalam beberapa kasus, mungkin lebih baik untuk menonaktifkan optimasi tersebut untuk memastikan bahwa setiap elemen yang dikembalikan adalah potongan baru dari array asli. Misalnya, jika satu atau lebih elemen yang dikunjungi harus berada di luar cakupan iterasi urutan, asSlices() memastikan bahwa semua elemen yang dikembalikan oleh urutan tersebut adalah instance unik.

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
 

Kembali
  • urutan yang mengembalikan setiap elemen yang diulang sebagai irisan baru
Lihat juga

public abstract void forEachIndexed (BiConsumer<long[], T> konsumen)

Kunjungi setiap elemen iterasi ini dan koordinatnya masing-masing.

Penting: metode konsumen tidak boleh menyimpan referensi ke koordinat karena koordinat tersebut mungkin dapat diubah dan digunakan kembali selama iterasi untuk meningkatkan kinerja.

Parameter
konsumen metode untuk memanggil setiap elemen