The Java Collections API

Pemrograman Berbasis Objek

  Politeknik Elektronika Negeri Surabaya

  Collections

Pemrograman Berbasis Objek

  • Collection sudah ada sejak JDK 1.0
    • – Hashtable – Vector

  Politeknik Elektronika Negeri Surabaya

  Collections Framework • Dikenalkan pada Java 2 SDK.

Pemrograman Berbasis Objek

  Collections

  • Collection adalah suatu obyek yang bisa digunakan untuk menyimpan sekumpulan obyek
  • Obyek yang ada dalam Collection disebut elemen
  • Collection menyimpan elemen yang bertipe Object, sehingga berbagai tipe obyek bisa disimpan dalam Collection

  Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  The Java Collections API

  • Java Collections API terdiri dari interface:
    • Collection

  : sekumpulan obyek yang tidak mempunyai posisi yang tetap (no particular order) dan menerima duplikat.

List

  : sekumpulan obyek yang berdasarkan urutan

  • – (ordered) dan menerima duplikat.

  Set : sekumpulan obyek yang tidak berdasarkan – urutan (unordered) dan menolak duplikat.

Map

  : mendukung pencarian berdasarkan key, key ini – harus unik. Has no particular order.

  Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  Politeknik Elektronika Negeri Surabaya

  5 Interface Collection dan Hirarki Class

  «interface» Collection

  «interface» Set

  «interface» List

  «interface» Queue

  «interface» SortedSet

  «interface» Map

  «interface» SortedMap

  TreeSet HashSet Linked HashSet Vector ArrayList LinkedList TreeMap HashMap

Implementations

Pemrograman Berbasis Objek

  TreeSet HashSet List AbstractList

  AbstractSequentialList ArrayList LinkedList

  AbstractCollection Vector Stack LinkedHashSet

  Interfaces Abstract Classes Concrete Classes Copyright: Liang

  SortedMap Map

  TreeMap HashMap

  AbstractMap

  LinkedHashMap

  Interfaces Abstract Classes

Concrete Classes

  Politeknik Elektronika Negeri Surabaya

  Set SortedSet AbstractSet Collection

Pemrograman Berbasis Objek

  Politeknik Elektronika Negeri Surabaya

  Collection Interfaces and Classes

  7 Pemrograman Berbasis Objek Politeknik Elektronika Negeri Surabaya

  Interface Collection

Pemrograman Berbasis Objek

  Expansion of contracts

  <<interface>>

List<E>

  • add(E):boo>remove(Object):boolean
  • get (in>indexOf (Object)
  • contains(Object):boolean &lt;&lt;interface&gt;&gt;
  • size():int

Collection<E>

  • iterator():Iterator&lt;E&gt;
  • add(E):boolean etc…
  • remove(Object):boolean

  &lt;&lt;interface&gt;&gt;

  contains(Object):boolean

  • SortedSet&lt;E&gt;
  • size():int

  &lt;&lt;interface&gt;&gt;

  • iterator():Iterator&lt;E&>add(E):boolean etc… Set&lt;E&gt;
  • remove(Object):boolean
  • contains(Object):boo>add(E):boolean
  • size()>remove(Object):boolean
  • iterator():Iterator&lt;E&>contains(Object):boolean
  • first >size()
  • last ():E
  • iterator():Iterator&lt;E&gt;

  etc… etc…

  9 Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

Set : HashSet

  • Elemen pada Set selalu unik
  • Set menolak duplikat
  • Elemen yang tersimpan tidak berdasarkan urutan(unorder) dan tidak di sorting (unsorted)
  • Berhubungan dengan definisi matematika mengenai himpunan.
  • Interface Set merupakan subinterface dari interface

  Collection

  • Class yang mengimplementasikan interface Set adalah

  HashSet Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  Politeknik Elektronika Negeri Surabaya

  Set: HashSet

  Hasil:

Pemrograman Berbasis Objek

  Politeknik Elektronika Negeri Surabaya

  Set: HashSet

Pemrograman Berbasis Objek

  Politeknik Elektronika Negeri Surabaya

  Set: HashSet

Pemrograman Berbasis Objek Set<E>

  • Mathematical Set abstraction – contains no duplicate elements
    • – i.e. no two elements e1 and e2 such that e1.equals(e2)

  &lt;&lt;interface&gt;&gt;

Set<E>

  • add(E):boolean

  add(x) remove(c) a remove(Object):boolean b b

  • true true c
  • contains(Object):boolean

  x

  • isEmpty():boolean

  c

d

add(b) remove(x)

  • size():int

  a d false false + iterator():Iterator&lt;E&gt;

  etc…

  ? isEmpty() contains(e) b false &lt;&lt;interface&gt;&gt; true a

SortedSet<E> e contains(x) c

  first ():E size()

  • d

  false

  • last ():E

  5

  etc…

  15 Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  Operasi Besar (Bulk operations) pada Set: HashSet Merupakan operasi pada Himpunan s1.containsAll(s2) • mengembalikan nilai true jika s2 adalah subset s1. (Set s2 adalah subset s1 apabila s1 berisi semua anggota s2)

  • s1 = s1 U s2 s1.addAll(s2) hasil dari s1 adalah gabungan (union) dari s1 dan s2 s1 = s1 ∩ s2
  • s1.retainAll(s2) hasil dari s1 adalah irisan(intersection) dari s1 dan s2.
  • s1 = s1 – s2 s1.removeAll(s2) hasil dari s1 adalah selisih dari s1 dengan s2 Selisih (s1 - s2) adalah set yang berisi semua elemen yang ada pada s1 tetapi tidak ada pada s2.

  Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  SortedSet:TreeSet

  • Aturan sama dengan interface Set menolak duplikat.
  • Ingat SortedSet adalah subinterface Set.
  • Beda: elemen tersimpan dalam urutan ascending sorted.
  • Contoh SortedSet: TreeSet.

  Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  Politeknik Elektronika Negeri Surabaya

  SortedSet: TreeSet

  Output: [BlackJack, Checkers, Chess, Whist]

  Chess

Pemrograman Berbasis Objek

Class HashSet and TreeSet • HashSet and TreeSet mengimplementasikan interface Set. HashSet

  • Diimplementasikan menggunakan hash table
  • Element tidak terurut • Method add, remove, and contains, kompleksitas waktu O(c).
  • Dijamin elemen dalam keadaan terurut.
  • Method add, remove, and contains kompleksitas waktu logarithmic

  Politeknik Elektronika Negeri Surabaya

  TreeSet • Diimplementasikan menggunakan struktur pohon.

  O(log (n)), dimana n adalah jumlah elemen pada set.

  20

Pemrograman Berbasis Objek

  List

  • Elemen tersimpan berdasarkan urutan masukan (ordered).
  • Menerima duplikat.
  • Contoh List:
    • – LinkedList : elemen dalam LinkedList masuk dari awal dan dihapus dari akhir.
    • – Vector : a growable array of object.
    • – ArrayList: mirip vector, bersifat unsyncronized (jika multiple threads mengakses object ArrayList, object ini harus syncronized secara eksternal)

  Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  List • Pengembangan dari Interface Collection.

  • – Pengaksesan elemen melalui indeks seperti array

  add (int, Object), get(int), remove(int), set(int, Object)

  • – Pencarian element

  indexOf(Object), lastIndexOf(Object)

  • – Menggunakan Iterator tertentu disebut ListIterator
  • – Dapat mengambil subList

  subList(int fromIndex, int toIndex)

  22 Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  List

  • add(Object) : menambahkan elemen diakhir list
  • remove(Object) : menghapus di awal list list1.equals(list2) : dikatakan sama dengan •

  memperhatikan urutan elemen

  23 Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  List

  Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek Class ArrayList dan LinkedList

  Class ArrayList dan LinkedList mengimplementasikan interface • List.

  ArrayList adalah sebuah implementasi array dimana elemen- • elemennya dapat diakses secara langsung menggunakan get and set methods.

  Biasanya ArrayList untuk urutan sederhana (simple sequence).

  LinkedList menggunakan double linked list • Memberikan performance yang lebih baik untuk method add danremove dibandingkan ArrayList.

  Memberikan performance yang lebih jelek untuk method get and set dibandingkan ArrayList.

  25 Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  List : ArrayList

  Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  Politeknik Elektronika Negeri Surabaya

  List: Vector

  Output: [Duke, Zak, Gordon, Lara, Zak] Gordon

  Pemrograman Berbasis Objek

  Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  • Collection menyediakan method untuk merandom isi dari

  Politeknik Elektronika Negeri Surabaya

  List

  Collection

Pemrograman Berbasis Objek

  • Output program sama dengan sebelumnya tapi lebih singkat

  Politeknik Elektronika Negeri Surabaya

  List

Pemrograman Berbasis Objek

  Politeknik Elektronika Negeri Surabaya

  List Output

  Politeknik Elektronika Negeri Surabaya

  List

Pemrograman Berbasis Objek

  • Tambahkan program sebelumnya

  Politeknik Elektronika Negeri Surabaya

  List

  Pemrograman Berbasis Objek

  Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  Output

  Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

List

  Sebagian besar algoritma(method) pada class Collections diaplikasikan ke • List. Sehingga dengan algoritma ini memudahkan untuk memanipulasi data pada List.

  • sort(List) mengurutkan List dengan algoritma merge sort
  • shuffle(List) Permutasi secara random pada List • reverse(List) membalik urutan elemen pada List • fill(List, Object) Mengganti setiap elemen pada List dengan value yang ditent
  • copy(List dest, List src) Mengkopikan source List ke destination List.
  • binarySearch(List, Object) Mencari sebuah element pada List dengan algoritma binary Search

  Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek java.util. Iterator<E>

  Think about typical usage scenarios for Collections • Retrieve the list of all patients – Search for the lowest priced item –

  More often than not you would have to traverse every element in • the collection – be it a List, Set, or your own datastructure Iterators provide a generic way to traverse through a collection • regardless of its implementation

  a

  

iterator() c Set

  g

  next():d

  f d h a b c d e f g h i b e i

  hasNext()? List Iterator iterator() a b c d e f g h i

  37 Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  ListIterator

ListIterator adalah subinterface dari • Iterator

  .

  • Dengan menggunakan ListIterator pada List, maka elemen dapat diambil secara backward.

  next previous

  • Gunakan method atau sebagai navigasi.

  Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  Politeknik Elektronika Negeri Surabaya

  Hirarki Interface Iterator

Pemrograman Berbasis Objek

  Politeknik Elektronika Negeri Surabaya

  ListIterator

Pemrograman Berbasis Objek

Map • Menyimpan elemen dengan key unik

  • Satu key untuk satu elemen.
  • Key disimpan dalam bentuk object.
  • Map tidak bisa menyimpan duplicate key.
  • Map bisa menyimpan duplicate element.
  • Has no particular order.
  • Contoh:
    • – Hashtable – HashMap

  • not syncronized for threads
  • permits null values to be stored

  Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  • Map dapat dipandang sebagai Collection dengan 3 cara:
    • – keySet menghasilkan Set key yang ada pada Map – Values Collection values yang ada pada Map. Collection disini bukan Set karena multiple key dapat mempunyai nilai yang sama.
    • – entrySet Hasil disimpan pada Set, pasangan key-value yang ada pada Map

  Politeknik Elektronika Negeri Surabaya

  Map

Pemrograman Berbasis Objek

  • Map adalah object yang memetakan key dengan value. Disebut juga dengan associative array atau dictionary.
  • Method untuk menambah dan menghapus
    • put(Object key, Object value)
    • remove (Object key) • Method untuk mengambil object.
    • get (Object key)

  • Method untuk mengambil key, value dan pasangan (key, value)
    • keySet() // returns a Setvalues() // returns a Collection,
    • entrySet() // returns a set

  Politeknik Elektronika Negeri Surabaya

  Map

  43 Pemrograman Berbasis Objek Politeknik Elektronika Negeri Surabaya

  Map

Pemrograman Berbasis Objek

  Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

Map: Hashtable

  Politeknik Elektronika Negeri Surabaya

  class CollectionTest{ public static void main(String [] arg){ Hashtable ht = new Hashtable(); ht.put(“key1”, new Integer(12));

  } }

Pemrograman Berbasis Objek

  Map: HashMap

  Output: {Game4=Chess, Game3=Whist, Game1=Hearts, null=Chess} Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek Map<K,V>

  Stores mappings from (unique) keys (type K) to values (type V) •

  • – See, you can have more than one type parameters!

  Think of them as “arrays” but with objects (keys) as indexes • 021999887

  • – Or as “directories”: e.g. "Bob"

  &lt;&lt;interface&gt;&gt;

  get(k) put(x,e) put(k,f) Map&lt;K,V&gt; k a a null a

  • put(K,V):V

  a k a m b get(Object):V + get(x) k f

m b + remove(Object):V

p c null size():int m b

  • p c n b keySet():Set&lt;K&gt; + p c size() n b values():Collection&lt;V&gt; +

  keys values n etc…

  4 b x e values() remove(n) k a keySet()

  

Collection

b

  &lt;&lt;interface&gt;&gt;

  m b Set

SortedMap<K,V> k a p c b remove(x)

  firstKey ():K m

  • p

  null

  • lastKey ():K

  

c b

n n b etc…

  48 Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  Politeknik Elektronika Negeri Surabaya

  MultiMap

Pemrograman Berbasis Objek

  SortedMap: TreeMap

  • Aturan mirip Map • Beda: obyek tersimpan secara sorted berdasarkan key.
  • No duplicate key.
  • Elements may be duplicate.
  • Key tidak boleh null value.

  Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek

  SortedMap: TreeMap

  Output: {1=Euchre, 2=Tic Tac Toe, 3=Checkers, 4=Chess} Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek java.util. Collections

  • Offers many very useful utilities and algorithms for manipulating and creating collections

Sorting lists –

  • – Index searching
  • – Finding min/max
  • – Reversing elements of a list
  • – Swapping elements of a list
  • – Replacing elements in a list
  • – Other nifty tricks
    • Saves you having to implement them yourself

  reuse

  53 Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek Collections.sort()

  • Java’s implementation of merge sort – ascending order

  ≤ ≤ ≤ ≤ ≤ ≤ e b c d b f a a b b c d e f

  1

  2

  3

  4

  5

  6

  1

  2

  3

  4

  5

  6

  ! " #$ $ $ % public static &lt;T extends Comparable &lt;? super T&gt;&gt; void sort(List&lt;T&gt; list) 1) 2) public static &lt;T&gt; void sort(List&lt;T&gt; list, Comparator &lt;? super T&gt; c)

  54 Politeknik Elektronika Negeri Surabaya

Dokumen yang terkait

Analisis Komparasi Internet Financial Local Government Reporting Pada Website Resmi Kabupaten dan Kota di Jawa Timur The Comparison Analysis of Internet Financial Local Government Reporting on Official Website of Regency and City in East Java

19 819 7

FAKTOR-FAKTOR YANG BERPENGARUH TERHADAP PENDAPATAN TENAGA KERJA PENGRAJIN ALUMUNIUM DI DESA SUCI KECAMATAN PANTI KABUPATEN JEMBER The factors that influence the alumunium artisans labor income in the suci village of panti subdistrict district jember

0 24 6

HUBUNGAN ANTARA KUALITAS PELAYANAN DENGAN KEPUASAN PENUMPANG KERETA API TAWANG ALUN DI WILAYAH PT. KERETA API INDONESIA (PERSERO) DAOP 9 JEMBER

2 45 13

The Correlation between students vocabulary master and reading comprehension

16 145 49

The Effectiveness of Computer-Assisted Language Learning in Teaching Past Tense to the Tenth Grade Students of SMAN 5 Tangerang Selatan

4 116 138

The correlation between listening skill and pronunciation accuracy : a case study in the firt year of smk vocation higt school pupita bangsa ciputat school year 2005-2006

9 128 37

PENGARUH KOSENTRASI SARI KUNYIT PUTIH (Curcuma zediaria) TERHADAP KUALITAS TELUR ASIN DITINJAU DARI AKTIVITAS ANTIOKSIDAN, TOTAL FENOL, KADAR PROTEIN DAN KADAR GARAM The Addition of White Turmeric (Curcuma zedoaria) Concentrated Base on Quality Antioxidan

1 1 8

The effect of personal vocabulary notes on vocabulary knowledge at the seventh grade students of SMP Muhammadiyah Palangka Raya - Digital Library IAIN Palangka Raya

0 0 20

The correlation between synonym context clue and reading comprehension of English study program students of IAIN Palangka Raya - Digital Library IAIN Palangka Raya

0 2 27

CHAPTER I INTRODUCTION - The effectiveness of anagram on students’ vocabulary size at the eight grade of MTs islamiyah Palangka Raya - Digital Library IAIN Palangka Raya

0 0 10