Saya ingin tahu apakah aman / disarankan untuk mengonversi dari ArrayList ke Array? Saya memiliki file teks dengan setiap baris berupa string:
1236
1233
4566
4568
....
Saya ingin membacanya menjadi daftar array dan kemudian mengubahnya menjadi Array. Apakah itu dianjurkan / legal untuk melakukan itu?
Terima kasih
Jawaban:
Ya itu aman untuk mengkonversi
ArrayList
keArray
. Apakah itu ide yang bagus tergantung pada tujuan penggunaan Anda. Apakah Anda memerlukan operasi yangArrayList
menyediakan? Jika demikian, pertahankanArrayList
. Lain konversi pergi!keluaran
sumber
The method toArray(T[]) in the type ArrayList<Character> is not applicable for the arguments (char[])
Ini adalah cara terbaik (IMHO).
Kode ini juga berfungsi:
Tetapi kurang efektif: array string dibuat dua kali: pertama kali array panjang-nol dibuat, kemudian array ukuran sebenarnya dibuat, diisi, dan dikembalikan. Jadi, jika karena Anda mengetahui ukuran yang dibutuhkan (dari
list.size()
) Anda harus membuat array yang cukup besar untuk meletakkan semua elemen. Dalam hal ini tidak dialokasikan kembali.sumber
new String[0]
dannew String[size]
new String[0]
sebenarnya lebih efisien. shipilev.net/blog/2016/arrays-wisdom-ancientsApakah itu "ide bagus" akan sangat bergantung pada kasus penggunaan Anda.
sumber
Object
dengan asumsi v adalah ArrayList:
sumber
Ada dua gaya untuk mengonversi koleksi menjadi larik: baik menggunakan larik berukuran sebelumnya (seperti
c.toArray(new String[c.size()])
) atau menggunakan larik kosong (sepertic.toArray(new String[0])
). Dalam versi Java yang lebih lama disarankan menggunakan larik berukuran sebelumnya, karena panggilan refleksi yang diperlukan untuk membuat larik dengan ukuran yang sesuai cukup lambat. Akan tetapi, sejak update terakhir OpenJDK 6 , panggilan ini telah diterapkan, membuat performa versi array kosong menjadi sama dan terkadang bahkan lebih baik, dibandingkan dengan versi yang berukuran sebelumnya. Juga meneruskan larik berukuran sebelumnya berbahaya untuk koleksi serentak atau tersinkronisasi karena balapan data dimungkinkan antara ukuran dan panggilan toArray yang dapat menghasilkan null tambahan di akhir larik, jika koleksi secara bersamaan menyusut selama operasi. Anda bisa mengikuti gaya seragam:baik menggunakan larik kosong (yang direkomendasikan di Java modern) atau menggunakan larik berukuran sebelumnya (yang mungkin lebih cepat di versi Java yang lebih lama atau JVM berbasis non-HotSpot) .sumber
Ini adalah penggunaan yang disarankan untuk Java yang lebih baru (> Java 6)
sumber
Antarmuka Collection menyertakan metode toArray () untuk mengubah koleksi baru menjadi array. Ada dua bentuk metode ini. Versi tanpa argumen akan mengembalikan elemen koleksi dalam array Object: public Object [] toArray (). Array yang dikembalikan tidak dapat mentransmisikan ke tipe data lain. Ini adalah versi paling sederhana. Versi kedua mengharuskan Anda untuk memasukkan tipe data dari larik yang ingin Anda kembalikan: public Object [] toArray (Object type []).
untuk referensi, lihat tautan ini http://techno-terminal.blogspot.in/2015/11/how-to-obtain-array-from-arraylist.html
sumber
Salah satu pendekatannya adalah menambahkan Second for Loop di mana pencetakan dilakukan di dalam loop for pertama. Seperti ini:
sumber
Itu tergantung pada apa yang ingin Anda capai jika Anda perlu memanipulasi array nanti, itu akan membutuhkan lebih banyak usaha daripada menyimpan string di ArrayList. Anda juga memiliki akses acak dengan ArrayList oleh
list.get( index );
sumber