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
Subscribe to:
Post Comments
(
Atom
)
No comments :
Post a Comment