Empat Metode Java Arraylist Traversal dan Penggunaan Kelas ArrayList di Java
Paket com.test; import java.util.arraylist; import java.util.iterator; import java.util.list; kelas publik arraylistdemo {public static void main (string args []) {list <string> list = new ArrayList < String> (); (it1.next ());} // Metode 2 untuk (iterator it2 = list.iterator (); it2.hasnext ();) {System.out.println (it2.next ()); untuk (string tmp: list) {System.out.println (tmp); get (i));}}}PS: Penggunaan Kelas ArrayList di Java
1. APA ITU ARRAYLIST
ArrayList adalah array dinamis legendaris.
Secara dinamis meningkatkan dan mengurangi elemen
Menerapkan antarmuka icollection dan ilist
Pengaturan ukuran array yang fleksibel
2. Cara menggunakan ArrayList
Contoh paling sederhana:
Daftar ArrayList = ArrayList baru (); untuk (int i = 0; i <10; i ++) // Tambahkan 10 elemen int ke daftar array.add (i); 5); // Hapus elemen ke -6 untuk (int i = 0; i <3; i ++) // Tambahkan 3 elemen lagi daftar.add (i+20); .ToArray (typeof (int32)); // kembalikan array yang terkandung dalam arraylist
Ini adalah contoh sederhana.
3. Metode penting dan sifat arraylist
1) Konstruktor
ArrayList menyediakan tiga konstruktor:
arraylist publik ();
Konstruktor default akan menginisialisasi array internal dengan ukuran default (16)
Public ArrayList (Icollection);
Dibangun dengan objek icollection dan menambahkan elemen koleksi ke arraylist
Public ArrayList (int);
Inisialisasi array internal dengan ukuran yang ditentukan
2) Metode Properti dan ArrayList.
Properti ISSYNCHRONIZed menunjukkan apakah instance arraylist saat ini mendukung sinkronisasi utas, sedangkan arraylist. Metode statis yang disinkronkan mengembalikan enkapsulasi sinkronisasi utas arraylist.
Jika Anda menggunakan instance sinkronisasi non-threaded, Anda perlu memanggil kunci secara manual untuk menjaga sinkronisasi utas saat mengakses multi-thread, misalnya:
Daftar ArrayList = ArrayList baru (); // ... Lock (List.Syncroot) // Saat ArrayList dibungkus dalam non-thread
Properti Syncroot sebenarnya sendiri, tetapi untuk memenuhi definisi sinkronisasi icollection,
Di sini kami masih menggunakan Syncroot untuk mempertahankan standardisasi kode sumber
{list.add ("tambahkan item");Jika Anda menggunakan contoh yang dikembalikan oleh ArrayList Dengan ArrayList. SINCHRONIZed Instance, setiap properti di dalamnya menggunakan kata kunci kunci untuk memastikan sinkronisasi utas.
3) Hitung atribut dan atribut kapasitas
Properti hitungan adalah jumlah elemen yang saat ini terkandung dalam ArrayList, dan properti ini hanya baca.
Properti kapasitas adalah angka maksimum yang dapat dikandung arraylist saat ini.
4) Tambahkan, addrange, hapus, lepaskan, removerange, masukkan, insertrange
Metode ini serupa
Metode Tambah digunakan untuk menambahkan elemen ke akhir daftar saat ini
Metode addrange digunakan untuk menambahkan batch elemen ke akhir daftar saat ini
Metode Hapus digunakan untuk menghapus elemen dan menghapusnya melalui referensi elemen itu sendiri.
Metode Lepas digunakan untuk menghapus elemen dan menghapusnya dengan mengindeks nilainya.
Removerange digunakan untuk menghapus batch elemen, yang dihapus dengan menentukan indeks awal dan jumlah penghapusan.
Sisipan digunakan untuk menambahkan elemen ke posisi yang ditentukan, dan elemen di belakang daftar dipindahkan ke belakang secara bergantian.
InserTrange digunakan untuk menambahkan batch elemen dari posisi yang ditentukan, dan elemen di belakang daftar dipindahkan ke belakang secara bergantian.
Selain itu, ada beberapa metode serupa:
Metode yang jelas digunakan untuk menghapus semua elemen yang ada.
Metode berisi digunakan untuk menemukan bahwa suatu objek tidak ada dalam daftar.
Saya tidak akan dibebani dengan yang lain.
5) Metode trimsize
Metode ini digunakan untuk memperbaiki daftar array dengan ukuran elemen yang sebenarnya.
6) Metode ToArray
Metode ini menyalin elemen arraylist ke array baru.
4. ArrayList dan konversi array
Contoh 1:
Daftar ArrayList = ArrayList baru (); ;
Contoh 2:
Daftar ArrayList = ArrayList baru (); ;
Di atas memperkenalkan dua metode untuk mengkonversi dari arraylist ke array
Contoh 3:
Daftar ArrayList = ArrayList baru (); ;
Ini berbeda dari array, karena dapat dikonversi ke array objek, jadi tidak akan membuat kesalahan untuk menambahkan berbagai jenis elemen ke dalam daftar array. Dapat dikonversi dengan benar oleh semua elemen, jika tidak, pengecualian yang tidak dapat diubah akan dilemparkan.
5. Saran Terbaik untuk Menggunakan ArrayList
Di bagian ini, kita akan membahas perbedaan antara arraylist dan array, serta efisiensi arraylist
1) ArrayList adalah versi yang kompleks dari array
ArrayList merangkum berbagai jenis objek.
Tentukan ukuran elemen yang sebenarnya.
6) Metode ToArray
Metode ini menyalin elemen arraylist ke array baru.
4. ArrayList dan konversi array
Contoh 1:
Daftar ArrayList = ArrayList baru (); ;
Contoh 2:
Daftar ArrayList = ArrayList baru (); ;
Di atas memperkenalkan dua metode untuk mengkonversi dari arraylist ke array
Contoh 3:
Daftar ArrayList = ArrayList baru (); ;
Ini berbeda dari array, karena dapat dikonversi ke array objek, jadi tidak akan membuat kesalahan untuk menambahkan berbagai jenis elemen ke dalam daftar array. Dapat dikonversi dengan benar oleh semua elemen, jika tidak, pengecualian yang tidak dapat diubah akan dilemparkan.
5. Saran Terbaik untuk Menggunakan ArrayList
Di bagian ini, kita akan membahas perbedaan antara arraylist dan array, serta efisiensi arraylist
1) ArrayList adalah versi yang kompleks dari array
ArrayList merangkum array tipe objek metode array.
2) Pengaruh tipe objek internal
Untuk jenis referensi umum, bagian ini tidak memiliki dampak besar, tetapi untuk jenis nilai, menambah dan memodifikasi elemen ke dalam arraylist akan menyebabkan operasi pengepakan dan unboxing, dan operasi yang sering dapat mempengaruhi beberapa efisiensi.
Tetapi bagi kebanyakan orang, sebagian besar aplikasi menggunakan array jenis nilai.
Tidak ada cara untuk menghilangkan dampak ini.
3) Ekspansi Array
Ini adalah faktor yang memiliki dampak yang lebih besar pada efisiensi arraylist.
Setiap kali Anda menjalankan Tambah, AddRange, Insert, InserTrange, dan metode lain untuk menambahkan elemen, itu akan memeriksa apakah kapasitas array internal tidak cukup. baru.
Contoh 1: Misalnya, jika data dengan 200 elemen ditambahkan secara dinamis ke daftar array yang dibuat dengan ukuran default 16 elemen, itu akan lulus:
16*2*2*2 = 256
Empat ekspansi akan memenuhi persyaratan akhir, jadi jika:
Daftar ArrayList = NEW ARRAYLIST (210);
Buat daftar array di jalan tidak hanya akan mengurangi pembuatan array 4 kali dan operasi salin, tetapi juga mengurangi penggunaan memori.
Contoh 2: Daftar array dibuat dengan 30 elemen yang diharapkan:
Daftar ArrayList = NEW ARRAYLIST (30);
Selama proses eksekusi, jika 31 elemen ditambahkan, array akan diperluas ke ukuran 60 elemen, dan tidak ada elemen baru yang akan ditambahkan pada saat ini. . dan menyia-nyiakan 29 ruang berukuran elemen. Jika saat ini, gunakan:
Daftar ArrayList = ArrayList baru (40);
Kemudian semuanya terpecahkan.
Oleh karena itu, memperkirakan elemen yang mungkin dengan benar dan memanggil metode trimsize pada waktu yang tepat adalah cara penting untuk meningkatkan efisiensi menggunakan ArrayList.
4) Sering memanggil indeks dari, berisi dan metode lainnya (Sort, BinarySearch, dan kotak lainnya
Kerugian efisiensi yang disebabkan oleh metode ini dioptimalkan, bukan di kolom ini) Pertama -tama, kita perlu memperjelas bahwa ArrayList adalah array dinamis, yang tidak termasuk algoritma yang dengan cepat diakses melalui kunci atau nilai, jadi pada kenyataannya, pada kenyataannya, pada kenyataannya, pada kenyataannya, pada kenyataannya, pada kenyataannya, pada kenyataannya, pada kenyataannya, pada kenyataannya, pada kenyataannya, pada kenyataan Memanggil indeks dari dan metode lain mudah dieksekusi. pasangan nilai seperti hashtable atau sortedlist.
ArrayList AL = ArrayList baru (); al.Add ("How"); al.add (300); al.add (1.2); al.add (22.8);