COLLECTION:
SET DAN MAP
INSTITUT TEKNOLOGI
SUMATERA
PEMROGRAMAN BERORIENTASI OBJEK
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[]); }
PEMROGRAMAN BERORIENTASI OBJEK
1.
Set
(HashSet)
•
SortedSet (TreeSet)
2.
List (ArrayList, LinkedList, Vector) — Minggu Lalu
3.
Map ( Hashtable,
HashMap
)
•
SortedMap (TreeMap)
SET (HASHSET DAN TREESET)
MAP (HASHMAP DAN
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
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[]); }
COTOH SET: HASTSET
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
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
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]
} }
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.
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); }
}
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.
SET: TREESET
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]
} }
PEMROGRAMAN BERORIENTASI OBJEK
COLLECTION: SET (HASHSET DAN TREESET)
•
HashSet and TreeSet mengimplementasikan interface Set.
•
HashSet
•
Diimplementasikan menggunakan hash table
•
Element tidak terurut
PEMROGRAMAN BERORIENTASI OBJEK
COLLECTION: SET (HASHSET DAN TREESET)
•
TreeSet
•
Diimplementasikan menggunakan struktur pohon.
•
Dijamin elemen dalam keadaan terurut.
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.
•
Contoh:
1.Hashtable
2.HashMap
•
not syncronized for threads
•
permits null values to be stored
COLLECTION: MAP
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); }
•
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
•
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
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
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
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
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
•
Aturan mirip Map
•
Beda: obyek tersimpan secara sorted berdasarkan key.
•
No duplicate key.
•
Elements may be duplicate.
•
Key tidak boleh null value.
CONTOH: TREEMAP
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}
}