Urutan mendaur ulang instance NdArray
yang sama saat melakukan iterasi elemen-elemennya
Konstruktor Publik
FastElementSequence ( AbstrakNdArray <T, U> ndArray, int dimensiIdx, elemen U, DataBufferWindow <?> elemenWindow) |
Metode Publik
Urutan NdArray <U> | sebagai Irisan () Mengembalikan setiap elemen sebagai irisan baru. |
ruang kosong | forEachIndexed (BiConsumer<long[], U> konsumen) |
Iterator<U> | pengulangan () |
Metode Warisan
Konstruktor Publik
FastElementSequence publik ( AbstrakNdArray <T, U> ndArray, int dimensiIdx, elemen U, DataBufferWindow <?> elemenWindow)
Metode Publik
publik NdArraySequence <U> sebagaiSlices ()
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