Subkelas Tidak Langsung yang Diketahui FastElementSequence <T, U memperluas NdArray <T>>, SingleElementSequence <T, U memperluas NdArray <T>>, SlicingElementSequence <T, U memperluas NdArray <T>> |
Urutan elemen array berdimensi N.
NdArraySequence
digunakan untuk melintasi NdArray
dalam dimensi tertentu dan mengunjungi setiap elemennya. Misalnya, matriks nxm
pada sumbu [x, y]
, elemen diiterasi dalam urutan 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 |
---|
Subkelas Tidak Langsung yang Diketahui FastElementSequence <T, U memperluas NdArray <T>>, SingleElementSequence <T, U memperluas NdArray <T>>, SlicingElementSequence <T, U memperluas NdArray <T>> |
Urutan elemen array berdimensi N.
NdArraySequence
digunakan untuk melintasi NdArray
dalam dimensi tertentu dan mengunjungi setiap elemennya. Misalnya, matriks nxm
pada sumbu [x, y]
, elemen diiterasi dalam urutan 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 |
---|