Java'da Bir Koleksiyondan Bir Öğeyi Kaldırmak İçin Yineleyici Yöntemi Nasıl Kullanılır?

Java Da Bir Koleksiyondan Bir Ogeyi Kaldirmak Icin Yineleyici Yontemi Nasil Kullanilir



yineleyici ” yöntemi, üzerinde yineleme yaparken bir koleksiyondan belirli veri öğelerini kaldırmanın veya silmenin güvenli ve kolay bir yolunu sunar. “ oluşmasını engeller. ConcurrentModificationException ”, geliştirilmiş for döngüsü koleksiyonu değiştirmeye çalıştığında ortaya çıkar. Mevcut konumun izini saklar ve programcılara ilerleme ve gerektiğinde altta yatan öğeleri kaldırma şansı sunar.

Bu blog, yineleyici yöntemini kullanarak bir koleksiyondan bir öğeyi kaldırma işlemini gösterir.







Java'da Bir Koleksiyondan Bir Öğeyi Kaldırmak İçin Yineleyici Yöntemi Nasıl Kullanılır?

Yineleyici yöntemi tek yönlüdür ve “ dahil olmak üzere çeşitli koleksiyon türleri ile kullanılabilir. ArrayList”, “LinkedList ' vb. uygulayan herhangi bir koleksiyondan öğeleri kaldırmak için tek tip bir yol sunar. yinelenebilir ' arayüz.



Yineleyici yöntemini daha iyi anlamak için bazı örnekleri ziyaret edelim:



Örnek 1: Yineleyici Yöntemi Kullanarak Koleksiyondan Belirli Öğeleri Kaldırma

Yineleyici yöntemi “ ile kullanılabilir. eğer ” belirtilen öğeleri seçmek için ifadeler veya döngüler. Ve sonra “ kaldırmak ()” yöntemi aşağıda gösterildiği gibi silme işlemini gerçekleştirmek için kullanılır:





içe aktarmak java.util.* ;
sınıf iter sınavı
{
halk statik geçersiz ana ( Sicim [ ] argümanlar )
{
Dizi Listesi < tamsayı > demoArrList = yeni Dizi Listesi < tamsayı > ( ) ;
için ( int Ben = 0 ; Ben <= yirmi ; Ben = Ben + 2 )
{
demoArrList. eklemek ( Ben ) ;
}
yineleyici < tamsayı > itr = demoArrList. yineleyici ( ) ;
Sistem . dışarı . yazdır ( 'Sağlanan ArrayList:' ) ;

için ( int Ben = 0 ; Ben < demoArrList. boyut ( ) ; Ben ++ )
{
Sistem . dışarı . Yazdır ( demoArrList. elde etmek ( Ben ) + ' ' ) ;
}
sırasında ( itr. hasSonraki ( ) )
{
eğer ( itr. Sonraki ( ) % 3 == 0 )
itr. kaldırmak ( ) ;
}
Sistem . dışarı . yazdır ( ' \N Odd ArrayList Öğelerini Kaldırdıktan Sonra' ) ;
için ( int Ben = 0 ; Ben < demoArrList. boyut ( ) ; Ben ++ )
{
Sistem . dışarı . Yazdır ( demoArrList. elde etmek ( Ben ) + ' ' ) ;
}
}
}

Yukarıdaki kodun açıklaması:

  • İlk olarak, ArrayList oluşturulur ve ardından “katları” oluşturulur. 2 ” aralığına kadar eklenir yirmi '' yardımıyla için ' döngü.
  • Ardından, bir “ beyan edin yineleyici Konsolda ArrayList öğelerini görüntülemek için yöntem nesnesi.
  • Ardından, “ hasSonraki ()” yöntemini, yerleşik tüm ArrayList öğeleri arasında gezinmek için yineleyici nesneyle birlikte kullanın.
  • Bundan sonra “ eğer ” ifadesi, “ ile tam olarak bölünebilen elemanları kontrol etmek için kullanılır. 3 ' içinde.
  • Sonra ' kaldırmak ()” yöntemi, “ tarafından döndürülen öğeleri silmek için kullanılır. eğer ' ifade.
  • Sonunda, güncellenen ArrayList ' kullanılarak görüntülendi. için ' döngü.

Derlemeden sonra:



Çıktı, üçe bölünebilen ve yineleme yöntemi kullanılarak ArrayList'ten kaldırılan belirli öğeleri görüntüler.

Örnek 2: Koleksiyondan Tüm Öğeleri Kaldırma

Koleksiyonun tüm yerleşik öğelerini kaldırmak için yineleme yöntemi, ' ile birlikte kullanılabilir. kaldırmak ()” yöntemi aşağıda gösterildiği gibi:

içe aktarmak java.util.* ;
sınıf boşluk
{
halk statik geçersiz ana ( Sicim argüman [ ] )
{
Vektör < tamsayı > testVektörü = yeni Vektör < tamsayı > ( ) ;
testVector. eklemek ( 18 ) ;
testVector. eklemek ( yirmi bir ) ;
testVector. eklemek ( 25 ) ;
testVector. eklemek ( 27 ) ;
testVector. eklemek ( 30 ) ;

yineleyici < tamsayı > çapraz = testVector. yineleyici ( ) ;
Sistem . dışarı . Yazdır ( 'Mevcut öğeler:' ) ;
sırasında ( çapraz. hasSonraki ( ) )
Sistem . dışarı . Yazdır ( çapraz. Sonraki ( ) + ' ' ) ;
Sistem . dışarı . Yazdır ( ' \N testVector içerir ' + testVector. boyut ( ) + ' elementler ' ) ;
çapraz = testVector. yineleyici ( ) ;
sırasında ( çapraz. hasSonraki ( ) )
{
Sistem . dışarı . Yazdır ( ' \N kaldırma ' + çapraz. Sonraki ( ) ) ;
çapraz. kaldırmak ( ) ;
}
Sistem . dışarı . yazdır ( ' \N Şimdi, testVector şunları içerir: ' + testVector. boyut ( ) + ' elementler' ) ;
}
}

Kodun açıklaması:

  • İlk olarak, beyan edin ve başlatın ' Vektör ” kullanan kukla tamsayı tipi değerlerle eklemek ()' yöntem.
  • Ardından, “ kullanan bir yineleyici yöntemi oluşturun. hasSonraki ()' Ve ' Sonraki ()” yöntemleri. Yerleşik veri öğelerini ve karşılık gelen boyutlarını görüntüler.
  • Ardından, “ hasSonraki ()” özelliği, “ içindeki yineleyici nesne boyunca sırasında ' döngü.
  • Bundan sonra, “ Sonraki ()” yöntemini kullanarak yaklaşmakta olan öğeyi seçin ve ardından kaldırmak () yöntemi, her alıcı elemanı silmek için çağrılır.
  • Bu şekilde, Vector'ün tüm öğeleri kaldırılır ve Vector'un boyutu konsolda görüntülenir.

Kodun açıklaması:

Yukarıdaki kod, koleksiyondaki tüm öğelerin kaldırıldığını onaylar.

Örnek 3: ListIterator Kullanarak Öğeyi Kaldırma

ListIterator, yineleyici yöntemine benzer şekilde çalışır. ListIterator, ileri ve geri yönlerde her iki tarafta çaprazlama gerçekleştirir. Java'daki ListIterator'ı kullanarak koleksiyondan belirli öğeleri kaldırmak için aşağıdaki kodu ziyaret edin:

içe aktarmak java.util.ArrayList ;
içe aktarmak java.util.ListIterator ;
halk sınıf ListIteratorDemo {

//main() yöntemini başlatıyoruz
halk statik geçersiz ana ( Sicim [ ] argümanlar )
{ //ArrayList'i Bildirmek ve Başlatmak
Dizi Listesi < Sicim > yetişkin = yeni Dizi Listesi < Sicim > ( ) ;
yetişkin eklemek ( 'Kapüşonlu svetşört' ) ;
yetişkin eklemek ( 'Kutup' ) ;
yetişkin eklemek ( 'Henley'ler' ) ;
yetişkin eklemek ( 'Ter' ) ;
yetişkin eklemek ( 'Gündelik' ) ;
yetişkin eklemek ( 'Lüks' ) ;
yetişkin eklemek ( 'Kuru fit' ) ;


ListeYineleyici < Sicim > litre = yetişkin listyineleyici ( ) ;
Sistem . dışarı . yazdır ( 'Kaldırmadan önce listele' ) ;
için ( int Ben = 0 ; Ben < yetişkin boyut ( ) ; Ben ++ )
Sistem . dışarı . Yazdır ( yetişkin elde etmek ( Ben ) + ' ' ) ;
sırasında ( litre. hasSonraki ( ) ) {
eğer ( litre. Sonraki ( ) . eşittir ( 'Ter' ) ) {
litre. kaldırmak ( ) ;
}
}
Sistem . dışarı . yazdır ( ' \N Kaldırıldıktan sonra listele' ) ;
için ( int Ben = 0 ; Ben < yetişkin boyut ( ) ; Ben ++ )
Sistem . dışarı . Yazdır ( yetişkin elde etmek ( Ben ) + ' ' ) ;
}
}

Yukarıdaki kodun açıklaması:

  • İlk olarak, ArrayList'i sahte String tipi değerlerle tanımlayın ve başlatın ve ' kullanarak konsoldaki tüm öğeleri görüntüleyin. için ' döngü.
  • Ardından, “ çağıran bir nesne oluşturun. hasSonraki ()” yöntemi “ içinde sırasında ' döngü. Tüm yerleşik elemanlardan geçer.
  • Sonra ' eğer ” deyimi, her öğeyi belirli bir metinle kontrol eden, bu öğe “ ile eşleştiğinde kullanılır. kaldırmak ()” yöntemi çağrılır. Belirli öğeyi '' dan siler. Sanat ” adlı ArrayList.
  • Sonunda, değiştirilmiş ArrayList'i konsolda görüntüleyin.

Derlemeden sonra:

Anlık görüntü, belirtilen veri öğesinin ListIterator kullanılarak koleksiyondan kaldırıldığını doğrular.

Çözüm

Öğeyi bir koleksiyondan kaldırmak için ' kaldırmak ()” yineleyici yöntemi kullanılır. Yineleyici, hedeflenen verileri bulmak için ArrayList içinden geçer. bulunduktan sonra “ kaldırmak ()” yöntemi, söz konusu veri öğesini kaldırmak için kullanılır. Farklı koleksiyonlarda standartlaştırılmış bir teknik sunar ve sorunları ve '' gibi çeşitli istisnaların oluşmasını önler. ConcurrentModificationException ”. Bununla birlikte “ ListeYineleyici ” da yardımcı olabilir.