Tavsiye, 2024

Editörün Seçimi

Java'da Iterator ve ListIterator Arasındaki Fark

Iterator ve ListIterator, Java'nın üç imleci arasında ikisidir. Hem Iterator hem de ListIterator, J ava.Util paketinde Collection Framework tarafından tanımlanır. ListIterator, Iterator arabiriminin alt arabirimidir. Iterator ve ListIterator arasındaki en büyük fark, Iterator'ın koleksiyondaki öğeleri yalnızca ileri yönde hareket ettirebilmesidir . ListIterator ise bir koleksiyondaki öğeleri hem ileri hem de geri yönde hareket ettirebilir .

Aşağıda gösterilen karşılaştırma çizelgesi yardımıyla Iterator ve ListIterator arasındaki bazı farklılıkları tartışalım.

Karşılaştırma Tablosu

Karşılaştırma için temelyineleyiciListIterator
TemelYineleyici bir koleksiyondaki elemanları yalnızca ileri yönde hareket ettirebilir.ListIterator, bir koleksiyondaki öğeleri ileri ve geri yönde hareket ettirebilir.
EklemekYineleyici bir koleksiyona öğe ekleyemiyor.ListIteror, koleksiyona eleman ekleyebilir.
değiştirmekYineleyici bir koleksiyondaki öğeleri değiştiremez.ListIterator, bir koleksiyondaki öğeleri set () kullanarak değiştirebilir.
çaprazYineleyici Harita, Liste ve Ayar arasında geçiş yapabilir.ListIterator yalnızca List nesnelerini değiştirebilir.
indeksYineleyici, koleksiyondaki öğenin bir dizinini alma yöntemine sahip değildir.ListIterator kullanarak, koleksiyondaki öğenin bir dizinini alabilirsiniz.

İteratörün tanımı

Yineleyici, Koleksiyon Çerçevesinde bir arayüzdür. Toplama elemanlarında geçiş yapmak için kullanılır. Yineleyici, koleksiyondaki her öğeyi tek tek yinelemenize, koleksiyondan öğeler elde etmenize veya koleksiyondan öğeleri kaldırmanıza olanak tanır. Yineleyiciyi kullanarak koleksiyondaki hiçbir öğeyi değiştiremeyeceğinizi fark edebilirsiniz.

Yineleyici, yineleyiciyi koleksiyonun başlangıcına döndüren bir yöntem yineleyici () içerir. Bir koleksiyonun başlangıcına bir yineleyici edindikten sonra, koleksiyondaki öğeleri dolaşmak için, döngü her yinelendiğinde hasNext () çağıran bir döngü oluşturun. HasNext (), true döndürürse, bir sonraki öğenin koleksiyonda olduğu ve false döndürdüğü zaman, tüm öğelerin travers olduğu anlamına gelir. Sonra döngünün içinde, her öğeyi next () kullanarak bir Koleksiyonda elde edebilirsiniz. Next () yöntemi, koleksiyonun bir sonraki öğesini döndürür.

dezavantajı:

Yineleyiciyi kullanarak bir koleksiyonu yalnızca ileri yönde hareket ettirebilirsiniz.
Yineleyici kullanarak, koleksiyondaki öğeleri değiştiremez veya değiştiremezsiniz.

ListIterator'un tanımı

ListIterator, Koleksiyon çerçevesindeki bir arayüzdür ve Yineleyici arayüzünü genişletir. ListIterator kullanarak, koleksiyonun öğelerini hem ileri hem de geri yönde hareket ettirebilirsiniz. Ayrıca koleksiyondaki herhangi bir öğeyi ekleyebilir, kaldırabilir veya değiştirebilirsiniz . Kısacası, yineleyicinin dezavantajlarını ortadan kaldırdığını söyleyebiliriz.

ListIterator yöntemleri aşağıdaki gibidir:

hasNext () : Eğer true döndürürse, koleksiyonda daha fazla öğe olduğunu onaylar.
next () : Listenin sonraki öğelerini döndürür.
nextIndex () : Listedeki sonraki öğelerin dizinini döndürür.
hasPrevious () : Bir koleksiyonda ters yönde öğeler varsa, true değerini döndürür.
prior () : Bir koleksiyondaki önceki öğeyi döndürür.
priorIndex () : Bir koleksiyondaki önceki öğenin dizinini döndürür.
remove () : Öğeyi koleksiyondan silin.
set () : Bir koleksiyondaki öğeyi değiştirir.
add () : Yeni öğeyi koleksiyona ekler.

Yineleyici ve ListIterator Arasındaki Temel Farklılıklar

  1. Iterator ve ListIterator arasındaki temel fark, hem imleç hem de Iterator'ın bir koleksiyondaki öğeleri yalnızca ileri yönde hareket ettirebilmesidir. Öte yandan, ListIterator hem ileri hem de geri yönde hareket edebilir.
  2. Yineleyici kullanarak bir koleksiyona herhangi bir öğe ekleyemezsiniz. Ancak, ListIterator kullanarak bir koleksiyona öğe ekleyebilirsiniz.
  3. Yineleyiciyi kullanarak, bir öğeyi ListIterator kullanarak bir koleksiyondan kaldırabileceğiniz bir koleksiyondaki öğeyi kaldıramazsınız.
  4. Yineleyiciyi kullanarak Harita, Liste, Set gibi tüm koleksiyonları gezebilirsiniz. Ancak, ListIteror tarafından yalnızca uygulanmış nesnelerin Listesinde gezinebilirsiniz.
  5. Yineleyici kullanarak bir elementin indeksini alabilirsiniz. Ancak List sıralı ve indeks tabanlı olduğundan, ListIterator'ı kullanırken bir elementin indeksini alabilirsiniz.

Sonuç:

ListIterator'ı, özellikle bir List nesnesini hem ileri hem de ters yönde hareket ettirmeniz gerektiğinde kullanabilirsiniz. Aksi halde, tüm toplama nesnelerini desteklediği için Yineleyiciyi kullanabilirsiniz.

Top