Java Collection Framework



Framework : Koleksi atau kumpulan potongan-potongan program yang disusun atau diorganisasikan sedemikian rupa, sehingga  dapat digunakan untuk membantu membuat aplikasi utuh tanpa harus membuat semua kodenya dari awal.

Framework adalah kumpulan fungsi (libraries), sehingga seorang programmer tidak perlu lagi membuat fungsi-fungsi (biasanya disebut kumpulan library) dari awal, programmer tinggal memanggil kumpulan library atau fungsi yang sudah ada didalam framework, tentunya cara menggunakan fungsi-fungsi itu sudah ditentukan oleh framework.

Collection Framework
Collection Framework adalah arsitektur di Java untuk merepresentasi dan memanipulasi collections.
Meliputi:
Interface: tipe data abstract yang merepresentasikan collections
Implementation: berupa implementasi concrete dari interface yang ada
Algorithm: adalah method yang berguna untuk memanipulasi collections, seperti searching dan shorting
Method ini bersifat polymorphic, karena bisa diterapkan pada implementasi yang berbeda .

Jika array adalah tempat sekumpulan elemen. Maka Collection adalah tempat sekumpulan objek.
Collection : suatu wadah/container yang menapung sekumpulan object.
Java Collection Framework mendukung tiga jenis collections utama, yakni:
              set
              list
              map

JCF Interfaces dan Classes
  Interfaces:
       Collection
       Set (tidak ada duplikasi)
       SortedSet
       List (bisa ada duplikasi)
       Map (mis: Dictionary)
       SortedMap
       Iterator
       Iterable
       ListIterator
  Classes:
       HashSet
       TreeSet
       ArrayList
       LinkedList
       HashMap
       TreeMap

   boolean hasNext();
       untuk memeriksa apakah object berikutnya ada atau tidak
   E next();
       untuk mendapatkan object berikutnya
   void remove();
       dipanggil setelah menjalankan method next()
       menghapus object yang sudah dipanggil dengan next() terakhir
       setelah memanggil next(), tidak bisa menjalankan remove() dua kali, pemanggilan kedua menyebabkan munculnya exception


Interface Collection
  public int size();
       Mengembalikan angka yang merupakan jumlah object dalam collection
  public boolean isEmpty();
       Mengembalikan nilai true bila tidak ada object dalam collection
  public boolean add(E x);
       Untuk memasukkan satu atau beberapa object ke collection. Pengembaliannya adalah true jika berhasil menambah. (beberapa jenis collection tidak mengijinkan duplikasi, sehingga proses add bisa saja gagal)
  public boolean contains(Object x);
       Untuk mengecek bahwa collection yang dimaksud mengandung object x
  public boolean remove(Object x);
       Menghapus sebuah object x dari collection. Kembalian bernilai true, jika ada object yang dihapus
  public Iterator<E> iterator();
       Mengembalikan sebuah iterator yang digunakan untuk menelusuri object di collection

Interface Set
  Set extends collection
       Set menuruni semua method milik Collection
  Set tidak memperbolehkan adanya duplikasi object di koleksinya
       Jika ingin menambah elemen dua kali dengan “add()” maka “add()” yang kedua akan mengembalikan nilai false
  Untuk mengakses object-object di Set, digunakan Iterator
  Representasi Set adalah seperti group, misal group musik, group mata kuliah

Implementasi Set (Concrete Class)
  java.util.HashSet<E>  (merupakan hashtable)
       Constructors:
   public HashSet();
   public HashSet(Collection<? extends E> c);
   public HashSet(int initialCapacity);
   public HashSet(int initialCapacity, float loadFactor);
  java.util.TreeSet<E> (merupakan balance BST)
       Constructors
   public TreeSet();
   public TreeSet(Collection<? extends E> c);
   .............

Interface SortedSet
  SortedSet memiliki fitur yang sama dengan Set, namun object yang tersimpan diurutkan berdasarkan datanya
  SortedSet biasanya dikombinasikan dengan TreeSet
  Efek penggunaan SortedSet, proses penambahan data jadi lebih lambat daripada Set biasa

Interface List
  List extends Collection
  Items/Objects di List dapat diakses menggunakan posisinya / indeksnya
  Method “add()” menambahkan object baru di bagian paling belakang dari list
  List cocok digunakan untuk mengganti Array, dengan ukuran yang dinamis
  Method tambahan yang merupakan tambahan baru dari yg dituruni dari interface Collection
       public E get(int index)
   mengembalikan object di posisi yang ditunjukkan index
       public E set(int index, E x)
   mengganti object di posisi index dengan object x, dan mengembalikan object yang telah diganti
       public void add(int index, E x)
   menambahkan object E ke posisi x, object lama di posisi x sampai posisi terakhir digeser satu posisi ke belakang
       public E remove(int index)
   menghapus object di posisi x, kemudian menggeser di belakang object yang dihapus satu posisi kedepan
   return object yang dihapus
       public int indexOf(Object e)
   Mengembalikan indeks/posisi dari object e

Implementasi List (Concrete Class)
  java.util.ArrayList<E> (representasi array)
       Constructors:
   public ArrayList();
   public ArrayList(int initialCapacity)
   public ArrayList(Collection<? extends E> c);
  java.util.LinkedList<E> (dobel linked list)
       Constructors:
   public LinkedList();
   public LinkedList(Collection<? extends E> c);
  Kedua-duanya memiliki tambahan method yang specifik untuk masing-masing class


Interface Map
  Map digunakan untuk memetakan kunci dan data. Sebagai contoh, kita memiliki suatu katalog buku, kode buku adalah kunci dan object buku adalah datanya
  Kunci di Map tidak dapat diduplikasi
  Tiap kunci hanya menunjuk ke satu object data
  Penggunaan Map biasanya dipadukan dengan class HashMap
  Method yang ada di Map:
  V put(K key, V value);
  untuk menambahkan pasangan kunci dan object
  V get(Object key);
  untuk mendapatkan object berdasarkan kunci tertentu
  V remove(Object key);
  untuk menghapus object berdasarkan kunci tertentu
  boolean containsKey(Object key);
  memeriksa apakan map memiliki kunci tertentu
  boolean containsValue(Object value);
  memeriksa apakah map memiliki object tertentu
  int size();
  mendapatkan jumlah key di map
  public Set<K> keySet();
  mendapatkan keseluruhan key yang berupa Set
  public Collection<V> values();
  mendapatkan keseluruhan object data yang berupa collection

Implementasi Map
  java.util.HashMap<K,V>
       Constructors:
   public HashMap<K,V>();
   public HashMap<K,V>(int initialCapacity)
   public HashMap<K,V>(Collection<? extends E> c);
  java.util.TreeMap<K,V>
       Constructors:
   public TreeMap<K,V>();
   public LinkedList<K,V>(Collection<? extends E> c);
  Kedua-duanya memiliki tambahan method yang specifik untuk masing-masing class



No comments

No comments :

Post a Comment