"Enter"a basıp içeriğe geçin

Collection Framework

 

Framework, geliştiriciler arafından hazırlanıp başkalarının kullanılımına sunulan, içinde kütüphaneler, sınıflar ve fonksiyonlar bulunduran projelerdir.

İmport ederek kendi projemizde kullanabiliriz.

Colloection framework, veri yapıları ile ilgili sınıfları, fonksiyonları ve interface’leri bulunduran bir frameworktür. İçinde pek çok sınıf, sıralama-bulma algoritmaları ve fonksiyonlar vardır.

Önceki yazılarımızda ArrayList veri yapısını incelemiştik. ArrayList aslında List Interface’inden üretilmiş bir sınıftır. List de Collection’dan üretilmiştir.

Bu durumda ArrayList nesneleri List veya Collection referansları ile tutulabilir. Ve onlardan miras aldığı özellikler de mevcuttur.

Aslında  temel özellikler tüm veri yapıları için ortaktır. Çünkü aynı atadan türerler.

Collection interface’indeki özellikler:

Fonksiyonİşlev
boolean add(E e)
eleman ekler
addAll(Collection<? extends E> c)
Collection’lar arasında eleman taşır
void clear()
Tüm elemanları siler
boolean contains(Object o)
Eğer konteynerda o objesi varsa true döndürür
boolean containsAll(Collection<?> c)İki konteyner’ı karşılaştırır. İçerikleri aynıysa true dondürür.
boolean equals(Object o)İki elemanı karşılaştırırken kullanılır.
int hashCode()Hash değeri döndürür.
boolean isEmpty()Boş olup olmadığına bakar
Iterator<E> iterator()
İteratör döndürür
boolean remove(Object o)
Girilen objenin ilk bulunduğu yeri siler.
boolean removeAll(Collection<?> c)Yollanan konteyner’daki tüm elemanları bizim konteynerımızda arayıp siler.
int size()Eleman sayısını döndürür.
default Spliterator<E> spliterator()Bir spliterator oluşturur.
Object[] toArray()TÜm elemanları bir diziye atar.
<T> T[] toArray(T[] a)Tüm elemanları dizi veya özel bir konteyner’a atar.

 

Sonraki yazıda ArrayList ile LinkedList’i karşılaştıracağız, kendi linkedlist sınıfımızı yazacağız ve collection framework içindeki linkedlist sınıfını inceleyeceğiz.

Kaynakça: https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html

    Bir cevap yazın

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir