Menghapus Elemen Dari ArrayList

1. Ikhtisar

Dalam tutorial ini, kita akan melihat cara menghapus elemen dari ArrayList di Java menggunakan teknik yang berbeda. Mengingat daftar olahraga, mari kita lihat bagaimana kita bisa menyingkirkan beberapa elemen dari daftar berikut:

List sports = new ArrayList(); sports.add("Football"); sports.add("Basketball"); sports.add("Baseball"); sports.add("Boxing"); sports.add("Cycling");

2. ArrayList # hapus

ArrayList memiliki dua metode yang tersedia untuk menghapus elemen, meneruskan indeks elemen yang akan dihapus, atau meneruskan elemen itu sendiri untuk dihapus, jika ada. Kami akan melihat kedua penggunaan.

2.1. Hapus berdasarkan Indeks

Dengan menggunakan remove passing indeks sebagai parameter, kita dapat menghapus elemen pada posisi yang ditentukan dalam daftar dan menggeser elemen berikutnya ke kiri, mengurangi satu dari indeksnya. Setelah eksekusi, metode hapus akan mengembalikan elemen yang telah dihapus:

sports.remove(1); // since index starts at 0, this will remove "Basketball" assertEquals(4, sports.size()); assertNotEquals(sports.get(1), "Basketball");

2.2. Hapus berdasarkan Elemen

Cara lain adalah menghapus kemunculan pertama elemen dari daftar menggunakan metode ini. Secara formal, kami menghapus elemen dengan indeks terendah jika ada, jika tidak, daftar tidak berubah:

sports.remove("Baseball"); assertEquals(4, sports.size()); assertFalse(sports.contains("Baseball"));

3. Menghapus Saat Iterasi

Terkadang kami ingin menghapus elemen dari ArrayList saat kami mengulanginya. Karena tidak menghasilkan ConcurrentModificationException, kita perlu menggunakan kelas Iterator untuk melakukannya dengan benar.

Mari kita lihat bagaimana kita bisa menyingkirkan elemen dalam satu lingkaran :

Iterator iterator = sports.iterator(); while (iterator.hasNext()) { if (iterator.next().equals("Boxing")) { iterator.remove(); } }

4. ArrayList # removeIf (JDK 8+)

Jika kita menggunakan JDK 8 atau versi yang lebih tinggi , kita bisa memanfaatkan ArrayList # removeIf yang menghapus semua elemen ArrayList yang memenuhi predikat yang diberikan.

sports.removeIf(p -> p.equals("Cycling")); assertEquals(4, sports.size()); assertFalse(sports.contains("Cycling"));

Akhirnya, kita dapat melakukannya menggunakan pustaka pihak ketiga seperti Apache Commons dan, jika kita ingin lebih dalam, kita dapat melihat bagaimana menghapus semua kejadian tertentu dengan cara yang efisien.

5. Kesimpulan

Dalam tutorial ini, kami melihat berbagai cara untuk menghapus elemen dari ArrayList di Java.

Seperti biasa, semua contoh yang digunakan di tutorial ini tersedia di GitHub.