Mengeluarkan Elemen Dari ArrayList

1. Gambaran keseluruhan

Dalam tutorial ini, kita akan melihat cara menghapus elemen dari ArrayList di Java menggunakan teknik yang berbeza. Memandangkan senarai sukan, mari kita lihat bagaimana kita dapat menyingkirkan beberapa elemen dari senarai berikut:

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

2. ArrayList # buang

ArrayList mempunyai dua kaedah yang tersedia untuk membuang elemen, melewati indeks elemen yang akan dikeluarkan, atau meneruskan elemen itu sendiri untuk dihapus, jika ada. Kami akan melihat kedua-dua penggunaan tersebut.

2.1. Keluarkan mengikut Indeks

Dengan menggunakan menghapus lulus indeks sebagai parameter, kita dapat membuang elemen pada posisi yang ditentukan dalam daftar dan mengalihkan elemen berikutnya ke kiri, mengurangkan satu dari indeksnya. Setelah dilaksanakan, kaedah hapus akan mengembalikan elemen yang telah dikeluarkan:

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

2.2. Alih keluar oleh Elemen

Cara lain adalah dengan membuang kejadian pertama elemen dari senarai menggunakan kaedah ini. Secara rasmi, kami membuang elemen dengan indeks terendah jika ada, jika tidak, senarai tidak berubah:

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

3. Mengeluarkan Semasa Mengulangi

Kadang-kadang kita mahu membuang elemen dari ArrayList semasa kita menggulungnya. Oleh kerana tidak menghasilkan ConcurrentModificationException, kami perlu menggunakan kelas Iterator untuk melakukannya dengan betul.

Mari lihat bagaimana kita dapat menyingkirkan elemen dalam gelung :

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

4. ArrayList # removeIf (JDK 8+)

Sekiranya kita menggunakan JDK 8 atau versi yang lebih tinggi , kita dapat memanfaatkan ArrayList # removeIf yang membuang semua elemen ArrayList yang memenuhi predikat tertentu.

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

Akhirnya, kita dapat melakukannya dengan menggunakan perpustakaan pihak ketiga seperti Apache Commons dan, jika kita ingin mendalami, kita dapat melihat bagaimana membuang semua kejadian tertentu dengan cara yang cekap.

5. Kesimpulan

Dalam tutorial ini, kami melihat pelbagai cara mengeluarkan elemen dari ArrayList di Java.

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