Collections – Giriş

Merhabalar, bu yazımda Java‘da Collections‘a giriş yapacağım ve sonraki yazı serilerinde bu framework içinde bulunan class‘ları ve interface‘leri anlatmaya devam edeceğim.

Collections, Java içerisinde büyük bir öneme sahiptir ve bu yüzden Java‘da öğrenilmesi gereken en önemli alanlarından biridir. Sonuçta kodlama yaparken kullandığımız List, Map, nedir, nasıl çalışır, avantajları vs gibi durumlarınların bilinmesi bizi daha efektif kod yazmaya iter.

Java‘da Collections‘dan önce, array, vector ve hashtable bulunmaktaydı. Bu 3 farklı collection‘nın ortak bir interface‘i yoktu. Yani her biri için farklı metotlar, farklı member‘lar anlamına geliyordu. Bu da programcı için bir dezavantaja dönüşmekteydi. Bu daha da ileride işkenceye dönüşmemesi için Java‘yı geliştirenler, ortak bir interface‘e sahip ve önceki Collection‘ların problemlerini çözecek bir framework tasarladılar ve böylece Collection Framework‘ü doğmuş oldu.

Collection Framework‘ünün avantajlarından şöyle bahsedebiliriz.

  • Tutarlı(Consistent) bir API.
  • Programlama efortunu kısaltma.
  • Programlama hızını ve kalitesini arttırma.

Core olarak yer alan interface‘leri incelersek;

             Collection                Map
         /     /    \      \            |
        /      /      \     \           |
     Set    List    Queue  Dequeue   SortedMap
     /
    /
 SortedSet

Collection : En tepedeki interface’dir. add(), remove(), contains(), isEmpty(), addAll() gibi metotları bulunmaktadır.

Set : Duplicate eleman yer almaz. Örnek olarak HashSet ve TreeSet(SortedSet sınıfını implements eder) verilebilir.

List : Duplicate eleman içerebilir. Elemanlar sıralıdır. Örnek olarak LinkedList ve ArrayList verilebilir.

Queue : FIFO prensibine göre hareket eder.

Dequeue : LIFO ve FIFO prensiplerini destekler.

Map : Elemanları keyvalue şeklinde saklar. Duplicate elemanlara izin vermez. Örnek olarak HashMap ve TreeMap(SortedMap interface’i implement eder.) verilebilir.

Collections giriş olarak şimdilik bu kadar, sonraki yazılarda yer alan interface‘leri örnekler ile incelemeye başlayacağız.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s