Java Koleksiyonu, nesne grubuyla ilgilenecek bir mimari sağlar. Koleksiyon, tek bir nesne birimi anlamına gelir. Nesne grubunu tek bir birim olarak saklamamıza ve işlememize olanak tanır.
Koleksiyon çerçevesini kullanarak bir grup nesne üzerinde arama, sıralama, ekleme, silme, manipülasyon gibi birçok işlemi kolaylıkla gerçekleştirebiliyoruz.
Java Koleksiyonu çerçevesi çeşitli arayüzler ve sınıflar sağlar. Arayüzler şunları içerir: Ayarlamak, Liste , Kuyruk, Deque ve sınıflar şunları içerir: Dizi Listesi , Vektör , Bağlantılı liste , Karma Kümesi , AğaçSet , LinkedHashSet , Ve Öncelikli Sıra .
betiği çalıştırılabilir yap
Bu bölümde iki unsuru birbirinden ayıracağız. Koleksiyon çerçevesi , yani Liste ve ArrayList. List bir arayüzdür ve ArrayList bir sınıftır.
Liste Arayüzü
Liste, Koleksiyon çerçevesinin, nesnelerin sıralı koleksiyonunu korumamıza olanak tanıyan bir alt arayüzüdür. List'i kullanarak yinelenen değerleri ve boş öğeleri saklayabiliriz. Nesneler üzerinde ekleme, silme, arama, güncelleme işlemlerini gerçekleştirmek için indeks tabanlı bir yöntem sağlar.
Liste arayüzü java.util paketinde yer alır. ArrayList, LinkedList, Stack ve Vector sınıflarını uygular. Aynı zamanda ListIterator sınıflarının temelini oluşturur ve bunu kullanarak List'i ileri ve geri yönde yineleyebiliriz.
Liste arayüzü, öğelere konumsal erişim ve ekleme sağlar ve ekleme sırasını korur. Listenin örneği, uygulama sınıfları kullanılarak oluşturulabilir.
Listenin Uygulanması:
Liste arayüzünü ArrayList, LinkedList, Vector ve kullanarak uygulayabiliriz. Yığın sınıfları .
Liste arayüzünü başlatmak için aşağıdaki sözdizimlerini kullanabiliriz:
List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack();
Aşağıdaki Liste örneğini göz önünde bulundurun:
import java.util.*; public class JavaListExample { public static void main(String[] args) { List l = new ArrayList(); //Implementation of List l using ArrayList class l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } }
Çıktı:
plsql
[Hello, Java, Tpoint]
ArrayList Sınıfı
ArrayList sınıfı, öğeleri depolamak için dinamik bir dizi kullanır. ArrayList sınıfı bir dizi gibi davranır ancak içinde boyut sınırı yoktur. Öğeleri istediğimiz zaman ekleyebilir veya kaldırabiliriz. ArrayList sınıfını kullanarak yinelenen öğeyi saklayabiliriz. Dahili olarak ekleme sırasını yönetir.
ArrayList sınıfı geleneksel diziden çok daha esnektir. Liste Arayüzünün tüm yöntemlerini kullanmak için Liste arayüzünü uygular. İçinde gerçekleşir Java .util paketi.
ArrayList sınıfı, AbstractList sınıfını devralır ve Liste Arayüzünü uygular. Öğelerine rastgele erişilebilir. int, char vb. gibi ilkel türler için kullanılamaz; bu veri türleri için bir sarmalayıcı sınıfa ihtiyacımız var.
ArrayList'in Uygulanması:
ArrayList sınıfı, AbstractList sınıfının tüm yöntemlerini miras alır ve List arayüzünü uygular.
ArrayList sınıfı şu şekilde bildirilebilir:
public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable
ArrayList şu şekilde tanımlanabilir:
ArrayList myList = new ArrayList();
Aşağıdaki ArrayList örneğini göz önünde bulundurun:
import java.util.*; public class JavaAL { public static void main(String[] args) { ArrayList l = new ArrayList(); //implementation of ArrayList l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } }
Çıktı:
[Hello, Java, Tpoint]
Liste Arayüzü ile ArrayList Sınıfı Arasındaki Bazı Temel Farklılıklar
List ve ArrayList arasındaki bazı önemli farklar şunlardır:
- En büyük farklardan biri şu ki List bir arayüzdür ve ArrayList bir sınıftır Java Koleksiyonu çerçevesinin.
- Liste koleksiyon çerçevesini genişletiyor , karşılaştırmalı olarak ArrayList, AbstractList sınıfını genişletir ve Liste arayüzünü uygular .
- List ve ArrayList'in ad alanı sırasıyla System.Collection.Generic ve System Collection'dır.
- Liste, öğeleri bir sırayla saklar ve bireysel dizin numarasıyla tanımlanır. Karşılaştırmalı olarak ArrayList, öğeleri dinamik bir dizide saklar; gerektiğinde büyüyebilir.
List’i şu şekilde tanımladığımızda:
List myList = new ArrayList();
Bu, yalnızca Liste arayüzünden yöntemleri ve referans üyelerini çağırabileceğimiz anlamına gelir.
ArrayList'i şu şekilde tanımlarsak:
bash'ta for döngüsü
ArrayList myList = new ArrayList();
Bu, ArrayList'teki mevcut yöntemleri çağırabileceğimiz ve Listeye ek olarak onun üyelerini de kullanabileceğimiz anlamına gelir.
List ve ArrayList arasındaki bazı karşılaştırmalar için aşağıdaki tabloyu göz önünde bulundurun:
Karşılaştırma Temeli | Liste | Dizi Listesi |
---|---|---|
Genel | Bu bir arayüzdür. | Bu sınıftır. |
İş | Bireysel indeks numarasıyla erişilebilen nesnelerin bir listesini oluşturur. | Gerektiğinde genişletilebilen dinamik bir dizi oluşturur. |
Uygulama | Liste listesi1= new ArrayList(); | ArrayList myList = new ArrayList(); |
Genişlet/Uygula | Koleksiyon çerçevesini genişletir. | AbstractList sınıfını genişletir ve Liste arayüzünü uygular. |
Temel Paket | java.util | java.util |
Ad alanı | System.Collection.Generic | Sistem.Koleksiyon |
Verim | Nesnelerin daha hızlı işlenmesini sağlar. | Listeye göre nesneler üzerinde daha yavaş manipülasyon sağlar. |
Örnekleme | Örneklenemez. | Anlık olabilir |
Çözüm
Liste bir arayüzdür ve ArrayList, Java Koleksiyon çerçevesinin bir sınıfıdır. Liste statik bir dizi oluşturur ve ArrayList, nesneleri depolamak için dinamik bir dizi oluşturur. Yani Liste oluşturulduktan sonra genişletilemez ancak ArrayList'i kullanarak gerektiğinde diziyi genişletebiliriz.
Polimorfizmden yararlanmak istiyorsanız Liste Arayüzünü kullanmak daha iyidir. Gelecekte arayüzü uygulamamız gerekirse programı değiştirmemize gerek kalmayacak.