Bagaimana Cara Menggunakan Metode Iterator untuk Menghapus Elemen Dari Koleksi di Java?

Bagaimana Cara Menggunakan Metode Iterator Untuk Menghapus Elemen Dari Koleksi Di Java



iterator ” metode menawarkan cara yang aman dan mudah untuk menghapus atau menghapus elemen data tertentu dari koleksi sambil mengulanginya. Mencegah terjadinya “ ConcurrentModificationException ” yang muncul ketika perulangan for yang disempurnakan mencoba memodifikasi koleksi. Ini menyimpan jejak posisi saat ini dan menawarkan programmer kesempatan untuk bergerak maju dan menghapus elemen yang mendasarinya sesuai kebutuhan.

Blog ini mendemonstrasikan proses menghapus elemen dari koleksi dengan memanfaatkan metode iterator.







Bagaimana Cara Menggunakan Metode Iterator untuk Menghapus Elemen Dari Koleksi di Java?

Metode iterator bersifat searah dan dapat digunakan dengan berbagai jenis koleksi, termasuk “ ArrayList', 'LinkedList ”, dll. Ini menawarkan cara yang seragam untuk menghapus elemen dari koleksi apa pun yang mengimplementasikan “ Iterable ” antarmuka.



Mari kita kunjungi beberapa contoh untuk lebih memahami metode iterator:



Contoh 1: Menghapus Elemen Tertentu Dari Koleksi Menggunakan Metode Iterator

Metode iterator dapat digunakan dengan “ jika ” pernyataan atau loop untuk memilih elemen yang ditentukan. Dan kemudian ' menghapus ()” metode digunakan untuk melakukan operasi penghapusan seperti yang ditunjukkan di bawah ini:





impor java.util.* ;
kelas IterExam
{
publik statis ruang kosong utama ( Rangkaian [ ] argumen )
{
ArrayList < Bilangan bulat > demoArrList = baru ArrayList < Bilangan bulat > ( ) ;
untuk ( int Saya = 0 ; Saya <= dua puluh ; Saya = Saya + 2 )
{
demoArrList. menambahkan ( Saya ) ;
}
Iterator < Bilangan bulat > itr = demoArrList. iterator ( ) ;
Sistem . keluar . println ( 'Disediakan ArrayList:' ) ;

untuk ( int Saya = 0 ; Saya < demoArrList. ukuran ( ) ; Saya ++ )
{
Sistem . keluar . mencetak ( demoArrList. mendapatkan ( Saya ) + ' ' ) ;
}
ketika ( itr. hasNext ( ) )
{
jika ( itr. Berikutnya ( ) % 3 == 0 )
itr. menghapus ( ) ;
}
Sistem . keluar . println ( ' \N Setelah Menghapus Elemen ArrayList Ganjil' ) ;
untuk ( int Saya = 0 ; Saya < demoArrList. ukuran ( ) ; Saya ++ )
{
Sistem . keluar . mencetak ( demoArrList. mendapatkan ( Saya ) + ' ' ) ;
}
}
}

Deskripsi kode di atas:

  • Pertama, ArrayList dibuat dan kemudian kelipatan dari “ 2 ” dimasukkan hingga kisaran “ dua puluh ” dengan bantuan “ untuk ' lingkaran.
  • Selanjutnya, deklarasikan “ iterator ” objek metode untuk menampilkan elemen ArrayList di konsol.
  • Kemudian, gunakan ' hasNext ()” dengan objek iterator untuk melintasi semua elemen ArrayList yang berada.
  • Setelah itu, “ jika Pernyataan ” digunakan untuk memeriksa elemen yang sepenuhnya habis dibagi oleh “ 3 ' di dalamnya.
  • Kemudian, “ menghapus ()” digunakan untuk menghapus elemen yang dikembalikan oleh “ jika ' penyataan.
  • Pada akhirnya, ArrayList yang diperbarui telah ditampilkan menggunakan tombol “ untuk ' lingkaran.

Setelah kompilasi:



Output menampilkan elemen tertentu, yang dapat dibagi tiga dan dihapus dari ArrayList menggunakan metode iterator.

Contoh 2: Menghapus Semua Elemen Dari Koleksi

Untuk menghapus semua elemen koleksi yang berada, metode iterator dapat digunakan bersama dengan “ menghapus ()” seperti yang ditunjukkan di bawah ini:

impor java.util.* ;
kelas Kekosongan
{
publik statis ruang kosong utama ( Rangkaian arg [ ] )
{
Vektor < Bilangan bulat > testVector = baru Vektor < Bilangan bulat > ( ) ;
testVector. menambahkan ( 18 ) ;
testVector. menambahkan ( dua puluh satu ) ;
testVector. menambahkan ( 25 ) ;
testVector. menambahkan ( 27 ) ;
testVector. menambahkan ( 30 ) ;

Iterator < Bilangan bulat > melintasi = testVector. iterator ( ) ;
Sistem . keluar . mencetak ( 'Elemen yang ada:' ) ;
ketika ( melintasi. hasNext ( ) )
Sistem . keluar . mencetak ( melintasi. Berikutnya ( ) + ' ' ) ;
Sistem . keluar . mencetak ( ' \N TestVector berisi ' + testVector. ukuran ( ) + 'elemen' ) ;
melintasi = testVector. iterator ( ) ;
ketika ( melintasi. hasNext ( ) )
{
Sistem . keluar . mencetak ( ' \N menghapus ' + melintasi. Berikutnya ( ) ) ;
melintasi. menghapus ( ) ;
}
Sistem . keluar . println ( ' \N Sekarang, testVector berisi ' + testVector. ukuran ( ) + 'elemen' ) ;
}
}

Deskripsi kode:

  • Pertama, nyatakan dan inisialisasi “ Vektor ” dengan nilai tipe integer dummy menggunakan “ menambahkan ()' metode.
  • Selanjutnya, buat metode iterator yang menggunakan “ hasNext ()' Dan ' Berikutnya ()” metode. Ini menampilkan elemen data yang berada dan ukurannya yang sesuai.
  • Kemudian, gunakan ' hasNext ()” di sepanjang objek iterator di dalam “ ketika ' lingkaran.
  • Setelah itu, gunakan “ Berikutnya ()” untuk memilih elemen yang akan datang, dan kemudian, menghapus () metode dipanggil untuk menghapus setiap elemen penerima.
  • Dengan cara ini, semua elemen Vektor dihapus dan ukuran Vektor ditampilkan di konsol.

Deskripsi kode:

Kode di atas menegaskan bahwa semua elemen dari koleksi telah dihapus.

Contoh 3: Menghapus Elemen Menggunakan ListIterator

ListIterator bekerja mirip dengan metode iterator. ListIterator melakukan penjelajahan di kedua sisi dalam arah maju dan mundur. Untuk menghapus elemen tertentu dari koleksi menggunakan ListIterator di Java, kunjungi kode di bawah ini:

impor java.util.ArrayList ;
impor java.util.ListIterator ;
publik kelas ListIteratorDemo {

// Menginisialisasi metode main()
publik statis ruang kosong utama ( Rangkaian [ ] argumen )
{ //Mendeklarasikan dan Menginisialisasi ArrayList
ArrayList < Rangkaian > dewasa = baru ArrayList < Rangkaian > ( ) ;
dewasa menambahkan ( 'Tudung' ) ;
dewasa menambahkan ( 'Tiang' ) ;
dewasa menambahkan ( 'Henley' ) ;
dewasa menambahkan ( 'Keringat' ) ;
dewasa menambahkan ( 'Kasual' ) ;
dewasa menambahkan ( 'Kemewahan' ) ;
dewasa menambahkan ( 'Kering' ) ;


ListIterator < Rangkaian > liter = dewasa listIterator ( ) ;
Sistem . keluar . println ( 'Daftar sebelum dihapus' ) ;
untuk ( int Saya = 0 ; Saya < dewasa ukuran ( ) ; Saya ++ )
Sistem . keluar . mencetak ( dewasa mendapatkan ( Saya ) + ' ' ) ;
ketika ( liter. hasNext ( ) ) {
jika ( liter. Berikutnya ( ) . sama ( 'Keringat' ) ) {
liter. menghapus ( ) ;
}
}
Sistem . keluar . println ( ' \N Daftar setelah penghapusan' ) ;
untuk ( int Saya = 0 ; Saya < dewasa ukuran ( ) ; Saya ++ )
Sistem . keluar . mencetak ( dewasa mendapatkan ( Saya ) + ' ' ) ;
}
}

Deskripsi kode di atas:

  • Pertama, nyatakan dan inisialisasi ArrayList dengan nilai tipe String boneka dan tampilkan semua elemen di konsol menggunakan ' untuk ' lingkaran.
  • Selanjutnya, buat objek yang memanggil ' hasNext ()” metode di dalam “ ketika ' lingkaran. Ini melintasi semua elemen yang berada.
  • Kemudian, “ jika ” pernyataan digunakan yang memeriksa setiap elemen dengan teks tertentu, ketika elemen itu cocok dengan ' menghapus ()” dipanggil. Ini menghapus elemen spesifik dari ' aArt ” bernama ArrayList.
  • Pada akhirnya, tampilkan ArrayList yang dimodifikasi di konsol.

Setelah kompilasi:

Snapshot mengonfirmasi elemen data yang ditentukan telah dihapus dari koleksi menggunakan ListIterator.

Kesimpulan

Untuk menghapus elemen dari koleksi, tombol “ menghapus ()” metode iterator digunakan. Iterator melintasi ArrayList untuk menemukan data yang ditargetkan. Setelah ditemukan “ menghapus ()” metode digunakan untuk menghapus elemen data tertentu. Ini menawarkan teknik standar di berbagai koleksi dan mencegah masalah dan terjadinya beberapa pengecualian seperti ' ConcurrentModificationException ”. Bersamaan dengan itu, “ ListIterator ” juga dapat membantu.