• Tidak ada hasil yang ditemukan

INSTITUT TEKNOLOGI SUMATERA COLLECTION: SET DAN MAP

N/A
N/A
Protected

Academic year: 2021

Membagikan "INSTITUT TEKNOLOGI SUMATERA COLLECTION: SET DAN MAP"

Copied!
29
0
0

Teks penuh

(1)

COLLECTION:

SET DAN MAP

INSTITUT TEKNOLOGI

SUMATERA

(2)

PEMROGRAMAN BERORIENTASI OBJEK

(3)

PEMROGRAMAN BERORIENTASI OBJEK

public interface Collection {

// Basic Operations

int size();

boolean isEmpty();

boolean contains(Object element);

boolean add(Object element); // Optional

boolean remove(Object element); // Optional

Iterator iterator();

// Bulk Operations

boolean containsAll(Collection c);

boolean addAll(Collection c); // Optional

boolean removeAll(Collection c); // Optional

boolean retainAll(Collection c); // Optional

void clear(); // Optional // Array Operations

Object[] toArray();

Object[] toArray(Object a[]); }

(4)

PEMROGRAMAN BERORIENTASI OBJEK

1.

Set

(HashSet)

SortedSet (TreeSet)

2.

List (ArrayList, LinkedList, Vector) — Minggu Lalu

3.

Map ( Hashtable,

HashMap

)

SortedMap (TreeMap)

(5)

SET (HASHSET DAN TREESET)

MAP (HASHMAP DAN

(6)

PEMROGRAMAN BERORIENTASI OBJEK

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

dan TreeSet

(7)

DONEC QUIS NUNC

SET

public interface Set { // Basic Operations

int size();

boolean isEmpty();

boolean contains(Object element);

boolean add(Object element); // Optional

boolean remove(Object element);

bollean equals(Object o); int hashCode();

Iterator iterator(); // Bulk Operations

boolean containsAll(Collection c);

boolean addAll(Collection c); // Optional

boolean removeAll(Collection c); // Optional

boolean retainAll(Collection c); // Optional

void clear(); // Optional // Array Operations

Object[] toArray();

Object[] toArray(Object a[]); }

(8)

COTOH SET: HASTSET

(9)

HashSet()

HashSet(Collection c)

HashSet(int initialCapacity)

HashSet(int initialCapacity, float loadFactor) Function • add(Object e) • clear() • clone() • contains(Object o) • isEmpty() • iterator() • remove(Object o) • size()

COTOH SET: HASTSET

(10)

HashSet<Integer>h = new HashSet<Integer>(); h.add(2);

h.add(1); h.add(7);

h.add(7); //Trying a duplicate System.out.println(h);

System.out.println(h.size());

Object k[] = h.toArray(); //converting the set into an array System.out.println(Arrays.toString(k)); //displaying that array System.out.println(k[1]); //displaying an element h.remove(1); //removing an element System.out.println(h) [1, 2, 7] 3 [1, 2, 7] 2 [2, 7]

COTOH SET: HASTSET

(11)

PEMROGRAMAN BERORIENTASI OBJEK

import java.util.*;

public class latihan1 {

public static void main(String args[]) { Set s = new HashSet();

s.add("satu"); s.add("dua");

s.add(new Integer(4)); s.add(new Float(5.0)); s.add("dua");

s.add(new Integer(4)); System.out.println(s);

//output: [5.0, dua, 4, satu]

} }

(12)

PEMROGRAMAN BERORIENTASI OBJEK

• 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.

(13)

PEMROGRAMAN BERORIENTASI OBJEK

import java.util.*;

public class latihan1 {

public static void main(String args[]) { Set s1 = new HashSet();

Set s2 = new HashSet();

for (int i =0; i<5; i++){ s1.add(new Integer(i)); }

for (int i =3; i<7; i++){ s2.add(new Integer(i)); }

System.out.println("s1 : " + s1); System.out.println("s2 : " + s2);

System.out.println("s1.containsAll() : " + s1.containsAll(s2)); s1.retainAll(s2);

System.out.println(s1); s1.removeAll(s2);

System.out.println(s1); }

}

(14)

PEMROGRAMAN BERORIENTASI OBJEK

1.

Aturan sama dengan interface Set menolak duplikat.

2.

Ingat SortedSet adalah subinterface Set.

3.

Beda: elemen tersimpan dalam urutan ascending sorted.

4.

Contoh SortedSet: TreeSet.

(15)

SET: TREESET

(16)

PEMROGRAMAN BERORIENTASI OBJEK

import java.util.*;

public class latihan1 {

public static void main(String args[]) { SortedSet t = new TreeSet();

t.add("satu"); t.add("dua"); t.add("sepuluh"); t.add("sebelas"); t.add("dua"); t.add("satu");

System.out.println(t);

//output: [dua, satu, sebelas, sepuluh]

} }

(17)

PEMROGRAMAN BERORIENTASI OBJEK

COLLECTION: SET (HASHSET DAN TREESET)

HashSet and TreeSet mengimplementasikan interface Set.

HashSet

Diimplementasikan menggunakan hash table

Element tidak terurut

(18)

PEMROGRAMAN BERORIENTASI OBJEK

COLLECTION: SET (HASHSET DAN TREESET)

TreeSet

Diimplementasikan menggunakan struktur pohon.

Dijamin elemen dalam keadaan terurut.

(19)

PEMROGRAMAN BERORIENTASI OBJEK

COLLECTION: 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.

(20)

Contoh:

1.Hashtable

2.HashMap

not syncronized for threads

permits null values to be stored

COLLECTION: MAP

(21)

PEMROGRAMAN BERORIENTASI OBJEK

COLLECTION: SET (HASHSET DAN TREESET)

public interface Map {

// Basic Operations

Object put(Object key, Object value); Object get(Object key);

Object remove(Object key);

boolean containsKey(Object key);

boolean containsValue(Object value);

int size(); boolean isEmpty(); // Bulk Operations void putAll(Map t); void clear(); // Collection Views public Set keySet();

public Collection values();

public Set entrySet();

// Interface for entrySet elements public interface Entry {

Object getKey(); Object getValue();

Object setValue(Object value); }

(22)

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

COLLECTION: MAP

(23)

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 Set

– values() // returns a Collection,

– entrySet() // returns a set

COLLECTION: MAP

(24)

import java.util.*;

public class latihan1 {

private static final Integer ONE = new Integer(1);

public static void main(String args[]) {

Map m = new HashMap();

// Initialize frequency table from command line

for (int i=0; i<args.length; i++) {

Integer freq = (Integer) m.get(args[i]);

m.put(args[i], (freq==null ? ONE :

new Integer(freq.intValue() + 1)));

}

System.out.println(m.size()+" distinct words detected:");

System.out.println(m);

} }

//$ java Freq if it is to be it is up to me to delegate

CONTOH MAP

(25)

class CollectionTest{

public static void main(String [] arg){ Hashtable ht = new Hashtable();

ht.put(“key1”, new Integer(12)); }

}

class ContohHashMap{

public static void main(String [] arg){ HashMap hm = new HashMap();

hm.put("mhs1","Ahmad"); hm.put("mhs2","Luky");

hm.put("mhs3","Ramdani"); System.out.println(hm);

// {mhs3=Ramdani, mhs2=Luky, mhs1=Ahmad}

hm.put(null,"Johan");

System.out.println(hm); // ?

} }

MAP: HASHMAP

(26)

public static void main(String [] arg){ HashMap hm = new HashMap();

hm.put(new Integer(5),"Ahmad"); hm.put(new Integer(6),"Luky"); hm.put(new Integer(7),"Ramdani"); HashMap hm2 = new HashMap();

hm2.put(new Integer(1),"a"); hm2.put(new Integer(2),"b"); hm2.put(new Integer(3),"c"); hm2.put(new Integer(4),"d"); hm.putAll(hm2);

System.out.println(hm); Set set = hm.keySet(); System.out.println(set);

System.out.println(hm.values()); System.out.println(hm.entrySet());

for (Iterator i = hm.entrySet().iterator(); i.hasNext();){ Map.Entry e = (Map.Entry) i.next();

System.out.println(e.getKey() + ":"+ e.getValue()); }

}

CONTOH: HASHMAP

(27)

public static void main(String [] arg) { HashMap m = new HashMap();

String str[] = {"a", "b", "c"}; List l = Arrays.asList(str);

m.put(new Integer(1), l);

String str2[] = {"d", "e", "f"}; List l2 = Arrays.asList(str2); m.put(new Integer(2), l);

System.out.println(m); }

CONTOH: HASHMAP

(28)

Aturan mirip Map

Beda: obyek tersimpan secara sorted berdasarkan key.

No duplicate key.

Elements may be duplicate.

Key tidak boleh null value.

CONTOH: TREEMAP

(29)

public static void main(String args[]) { SortedMap t = new TreeMap();

t.put(new Integer(1), "satu"); t.put(new Integer(2), "dua");

t.put(new Integer(3), "sepuluh"); t.put(new Integer(4), "sebelas"); t.put(new Integer(5), "dua");

t.put(new Integer(6), "satu"); System.out.println(t);

//{1=satu, 2=dua, 3=sepuluh, 4=sebelas, 5=dua, 6=satu}

}

MAP: TREEMAP

Referensi

Dokumen terkait