Saya ingat bahwa ada masalah dengan menggunakan loop untuk menghapus elemen dalam daftar, tetapi Anda dapat menggunakan loop yang disempurnakan. Kemudian hari ini saya menemukan bahwa kesalahan dilaporkan ketika menggunakannya, dan kemudian pergi untuk mempopulerkan sains, dan kemudian menemukan bahwa ini adalah kesalahpahaman. Mari kita bicarakan di bawah ini. . Jangkau dan lompat langsung ke akhir artikel. Lihatlah ringkasannya. .
Ada tiga cara untuk melingkar daftar traverse di java, meningkatkan loop (yaitu, yang umumnya dikenal sebagai loop foreach), dan traversal iterator.
1. Untuk daftar traversal loop
untuk (int i = 0; i <list.size (); i ++) {if (list.get (i) .equals ("del")) list.remove (i);}Masalah dengan metode ini adalah bahwa setelah menghapus elemen, ukuran daftar perubahan, dan indeks Anda berubah, yang akan menyebabkan Anda kehilangan elemen tertentu selama traversal. Misalnya, ketika Anda menghapus elemen pertama dan terus mengakses elemen kedua sesuai dengan indeks, karena elemen setelah hubungan yang dihapus dipindahkan satu per satu, akses aktual ke elemen ketiga. Oleh karena itu, metode ini dapat digunakan saat menghapus elemen tertentu, tetapi tidak cocok saat menghapus banyak elemen dalam satu loop.
2. Tingkatkan loop untuk
untuk (string x: list) {if (x.equals ("del")) list.remove (x);}Masalah dengan metode ini adalah bahwa setelah menghapus elemen, pesan kesalahan akan dilaporkan dengan terus mengulang, karena modifikasi bersamaan terjadi ketika elemen digunakan, menghasilkan pengecualian yang dilemparkan. Namun, jika Anda menggunakan istirahat untuk segera melompat setelah penghapusan, kesalahan tidak akan dipicu.
3. Iterator Traversal
Iterator <string> it = list.iterator (); while (it.hasnext ()) {string x = it.next (); if (x.equals ("del")) {it.remove (); }}Metode ini dapat diulang dan dihapus secara normal. Tetapi harus dicatat bahwa jika Anda menggunakan metode hapus iterator, jika Anda menggunakan metode hapus daftar, Anda juga akan melaporkan kesalahan ConcurrentModificationException yang disebutkan di atas.
Meringkaskan:
(1) Jika Anda mengulang untuk menghapus elemen tertentu dalam daftar, Anda dapat menggunakan salah satu dari tiga metode, tetapi Anda harus memperhatikan berbagai masalah yang dianalisis di atas saat menggunakannya.
(2) Jika Anda mengulang untuk menghapus beberapa elemen dalam daftar, Anda harus menggunakan metode Iterator.
Ringkasan di atas dari metode penghapusan elemen di atas dalam daftar di Java adalah semua konten yang dibagikan oleh editor. Saya harap ini dapat memberi Anda referensi dan saya harap Anda akan lebih mendukung wulin.com.