|
Ada tiga cara untuk melintasi Daftar
<A> Daftar daftar = ArrayList baru<A>(); list.add(baru A()); list.add(baru A()); ...
Jenis pertama: for(Iterator<A> it = list.iterator(); it.hasNext(); ) { .... } Cara ini dalam siklus Pada saat yang sama, jika Anda ingin menghapus elemen dalam proses kesenangan, Anda hanya dapat memanggil metode it.delete, Anda tidak dapat menggunakan metode list.delete, jika tidak, akan ada kesalahan akses bersamaan. Tapi kompatibilitasnya adalah yang terbaik, cocok untuk koleksi Koleksi
Jenis kedua: for(A a : list) { ..... } Untuk setiap metode masih merupakan iterator, yang pertama disebut secara internal, dan sup tidak diubah, dan ada batasan lain untuk metode melingkar ini, sehingga tidak disarankan untuk menggunakannya Ini hanya dapat digunakan di atas JK1.5 dengan kompatibilitas yang buruk Atur yang terbaik adalah menggunakan yang ini
Jenis ketiga: for(int i=0; i<list.size(); i++) { A a = daftar.get(i); ... } for loop, melintasi konten kumpulan List hanya berfungsi untuk List, karena List adalah kumpulan yang diurutkan , internal tidak terkunci, efisiensi tertinggi, tetapi saat menulis multithreading, masalah operasi bersamaan harus dipertimbangkan! Melintasi koleksi Set adalah cara yang sama seperti List, tetapi Anda tidak dapat menggunakan perulangan for untuk mengulangi koleksi Set karena tidak ada metode get() dalam koleksi Set. Tetapi itu dapat diputar dengan peningkatan Melintasi koleksi Set Set<String> set = HashSet baru<String>(); set.add("qqq"); set.add("www"); set.add("eee"); set.add("rrr");
for(String s : set){ System.out.println("set="+s); }
|