Java Collection

Collection adalah object yang mengumpulkan atau berisikan data-data, mirip seperti array.
Java sudah menyediakan class-class collection yang bisa langsung kita gunakan tanpa tambahan library, sehingga kita tinggal menggunakannya saja.

Didalam collection terdapat
- interface : contract representasi dari interface
- implementation : implementasi fungsi dari contract / interface
- algorithm : algoritma untuk beberapa fungsi umum seperti pencarian & pengurutan

Java collection interface terbagi pada 2 group
1. Iterrable -> Collection
2. Map 

Iterrable berisikan interface iterator agar subclass-nya dapat melakukan pengulangan for each

Collection merupakan subclass dari Iterrable yang berisikan kontrak untuk memanipulasi data collection seperti, menambah, menghapus dan mencari / mengecek data dalam collection.

List Interface merupakan turunan dari collection yang memiliki sifat :
- Element pada list bisa duplikat / bisa memasukan data yang sama persis pada index yang berbeda
- List memiliki index, sehingga kita bisa menggunakan nomor index untuk mendapat isi element dari sebuah list
- Implementasi dari list adalah ArrayList & LinkedList


Set adalah salah satu collection yang berisikan element-element yang unique atau tidak boleh duplicate
Set tidak memiliki index seperti list & tidak ada jaminan data akan terurut sesuai urutan penambahan data
Turunan dari Set:
- HashSet
- LinkedHashSet : bisa menjamin keterurutan data, karena menggunakan double LinkedList
- TreeSet merupakan turunan dari SortedSet & NavigableSet

Map Interface
- Map adalah stuktur data collection yang berisikan mapping antara key & value
- Key pada Map harus unik, satu key hanya bisa mapping ke 1 value
- Map mirip dengan Array, pada Array ke adalah index (Integer), pada Map type data key bisa kita tentukan sendiri (String, Enum, dll)

Kalau belum yakin harus pakai type collection apa mulai aja dulu dengan ArrayList yang lebih umum digunakan, ketika ada problem baru kita improve menggunakan cara lain (initial capacity / another type collection).

0 comments:

Posting Komentar