Rumah >Java >javaTutorial >Bagaimana untuk Mengeluarkan Elemen dengan Selamat daripada Koleksi Semasa Lelaran di Java?

Bagaimana untuk Mengeluarkan Elemen dengan Selamat daripada Koleksi Semasa Lelaran di Java?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-09 13:44:11539semak imbas

How to Safely Remove Elements from a Collection During Iteration in Java?

Mengalih keluar Elemen daripada Koleksi Semasa Lelaran

Apabila mengalih keluar elemen daripada koleksi semasa lelaran, adalah penting untuk mempertimbangkan cara untuk mengelakkan ConcurrentModificationException. Satu pendekatan adalah berulang pada salinan koleksi, memastikan tiada pengubahsuaian berlaku semasa lelaran. Pendekatan lain ialah menggunakan lelaran daripada koleksi sebenar, membenarkan operasi penyingkiran terus.

Mengumpul dan Mengalih Keluar

Dalam pendekatan kumpul dan buang, kami dapati semua elemen untuk dialih keluar dan simpannya dalam senarai berasingan. Selepas lelaran, kami mengalih keluar elemen ini daripada koleksi asal. Teknik ini adalah koleksi-agnostik, berfungsi dengan mana-mana jenis koleksi.

Menggunakan ListIterator

Apabila bekerja dengan senarai, ListIterator menyediakan pilihan yang lebih cekap kerana ia menyokong elemen penyingkiran dan penambahan semasa lelaran. Pendekatan ini secara langsung mengubah suai koleksi sebenar semasa lelaran.

Peningkatan JDK 8

Dalam versi Java 8 dan kemudian, kaedah "removeIf" dan API aliran menawarkan pilihan tambahan untuk penyingkiran unsur. "removeIf" membolehkan kami mengalih keluar elemen yang sepadan dengan predikat, manakala strim membenarkan kami menapis elemen dan menyimpannya dalam koleksi baharu, yang kemudiannya boleh kami gunakan untuk menggantikan yang asal.

Sublist atau Subset

Untuk senarai diisih, menggunakan subsenarai atau subset boleh mengalih keluar elemen berturut-turut dengan cekap. Dengan mengosongkan subsenarai atau subset, kami secara tidak langsung mengubah suai senarai asal.

Pertimbangan

Pendekatan terbaik bergantung pada senario tertentu:

  • Kumpul dan alih keluar adalah serba boleh dan berfungsi dengan mana-mana jenis koleksi.
  • ListIterator ialah cekap dan menyokong kedua-dua penyingkiran dan penambahan.
  • Iterator kurang selamat kerana potensi pelaksanaan iterator yang tidak menyokong penyingkiran.
  • Peningkatan JDK 8 memberikan kecekapan dan kefleksibelan, tetapi memerlukan Java tertentu versi.
  • Sublist atau subset menawarkan cara yang cekap untuk mengalih keluar elemen berturut-turut daripada diisih senarai.

Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Elemen dengan Selamat daripada Koleksi Semasa Lelaran di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn