Friday, November 12, 2010

Java Collection Framework (HashSet, HashMap, Hashtable)

Pada pertemuan keempat ini saya dan teman2 disuruh membentuk kelompok dan mencari materi mengenai JCF (Java Collection Framework) dan mempresentasikannya.
Dan pada kelompok kami menjelaskan tentang HashSet, HashMap, dan HashTable.
Kita langsung saja ke materinya. . . .


Sebelum membahas ke 3 hal diatas marilah kita tengok bagian2 dari class collection.
perhatikan gambar di bawah ini.




Bagian2 yang ada dalam gambar diatas merupakan interface yang menyusun kelas interface.

1. Set :
Koleksi yang tidak boleh ada duplikasi nilai, dengan kata lain semua value dari class collection yang mengimplementasikan interface Set  tidak boleh ada duplikasi nilai di dalamnya. Set merupakan turunan langsung dari collection class

2.List : Koleksi boleh ada duplikasi nilai dan terurut.
3.Map : Object yang memetakan object ke nilai.
4.Queue : Collection yang menjaga urutan elemenya berdasarkan FIFO.  
5.SortedMap :  sebuap Map yang memelihara elemen key-nya terurut secara ascending.
6.SortedSet: Sebuat set yang memelihara pemetaan elemennya secara ascennding. 
Setelah mengetahui beberapa interface dari collection class, Langsung saja kita bahas HashSet, HashMap, dan Hashtable


1. HashSet
-hashSet merupakan class yang mengimplementasikan interface set.
-Set tidak mensupport dupilkasi nilai dari elemen2nya. (“www.java2s.com”)
-Adapun Constructor dari class ini adalah sbb :

Konstructor
Summary
HashSet()
dafault konstructor, element masih kosong dengan kapasitas default 16 elemen.
HashSet(CollectionE> c)
Konstructor dengan parameter sebuah spesifik class collection
HashSet(int initialCapacity)
Sebuah konstructor, dengan element masih kosong dengan kapasitas default sesuai parameter initialCapacity elemen.
HashSet(int initialCapacity, float loadFactor)
Sebuah konstructor, dengan element masih kosong dengan kapasitas default sesuai parameter initialCapacity elemen dan loadfactor

-adapun method2nya adalah…


nilai bailk
Method
boolean add(E e)
  method untuk Menambahkan sebuah element ke dalam HashSet, jika element masih blom ada maka return true.
void clear()
  Menghapus semua element dalam set ini
  Object  clone()
      Mengcopy HashSet ini secara instan
boolean contains(Object o)
boolean isEmpty()
  Akan bernilai true jika HashSet ini kosong.
Iterator<E> iterator()
   Mengembalikan nilai balik ebuah Object iterator semua elamen yang ada di Set ini.
boolean remove(Object o)
   Menghapus element tertentu sesuai parameternya jika element tersebut ada
int size()
Mengembalikan jumlah element yang ada di set ini.

Example :

import java.util.*;
/**
*
* @author Administrator
*/
public class HashetExample {
public static void main(String args[]){
//inisialisai Hashset
HashSet setHash = new HashSet();
pr("=======================================");
pr("Masukkan element 1 : " +setHash.add("Element 1"));
pr("Masukkan element 2 : " +setHash.add("Element 2"));
pr("Masukkan element 3 : " +setHash.add("Element 3"));
//akan bernilai false karena elemen 1 sudah ada.
pr("Masukkan element 1 : " +setHash.add("Element 1"));
pr("\n=======================================");
//ambil element menggunakan iterator
Iterator iter= setHash.iterator();
while(iter.hasNext()){
pr(iter.next());
}
}
static void pr(Object o){
System.out.println(o);
}
}
Output :
Masukkan element 1 : true
Masukkan element 2 : true
Masukkan element 3 : true
Masukkan element 1 : false
=======================================
Element 3
Element 2
Element 1


2.HashMap
-HashMap merupakan class yang mengimplementasikan interface Map
-Karena HashMap merupakan implentasi dari interface Map, maka HashMap menpunyai sebuah key untuk elemen yang ada di dalamnya. Seperti halnya element, key tersebut merupakan sebuah object juga. 
-Tidak boleh ada duplicate key dalam sebuah Map (dan anak cucunya).
-adapun konctructor dari class ini adalah sbb:


Konstructor Dari HashMap

HashMap()     Default kostructor, dengan element kosong dan default kapasitas element 16.
HashMap(int initialCapacity)    KOnstruntor untuk instance Hashmap dengan parameter initialCapacity yang merupakan kapasitas dari hashmap tsb.
HashMap(int initialCapacity, float loadFactor)      Hampir sama dengan kostructor diatas akan tetapi ada parameter tambahan berupa loadFactor
HashMap(MapK,? extends V> m)      KOnstructor dengan parameter Map m, sehingga HashMap akan otomatis terisi.


-Method2 yang ada dalam HashMap :


Nilai Balik
Methods
void clear()     Menghapus seluruh map (key dan value)
Object clone()     mengembalikan hasil cloning dari HashMap.
boolean containsKey(Object key)     Akan true jika ada object key dalam collection key di hashMap
boolean containsValue(Object value)     Akan true jika ada object value dalam collection Values dalam hashMap
Set<Map.Entry<K,V>> entrySet()   Mengembalikan nilai set dari HashMap
V get(Object key)     mengembalikan Sebuah object dari value sesuasi dengan parameter key.
boolean isEmpty()     mengembalikan nilai true jika HashMap dalam keadaan kosong
Set<K> keySet()   Mengembalikan sebuah object Set dari keys yang ada di HashMap.
V put(K key, V value)    Meletakkan Value dalam sebuah map sesuai dengan key nya.
void putAll(MapK,? extends V> m)    meletakkan sebuah Map kedalam HashMap.
V remove(Object key)   Menghapus value tertentu sesuai dengan parameter key
int size()    mengembalikan jumlah values yang ada di dalam hashMap
Collection<V> values()    mengembalikan seluruh values ke dalam bentuk Object Collection

Example :

import java.util.*;
/**
*
* @author Administrator
*/
public class HashMapExample {
public static void main(String args[]){
//inisialisai default HashMap
HashMap mapHash = new HashMap();
mapHash.put("key 1", "elemen 1");
mapHash.put("key 2", "elemen 2");
mapHash.put("key 3", "elemen 3");
//akan dimasukkan karena menggantikan elemen sebelumnya
mapHash.put("key 1", "elemen 5");
//Set kunci = mapHash.keySet();
//Iterator key = kunci.iterator();
Iterator key = mapHash.keySet().iterator();
String keyTemp = "";
while(key.hasNext()){
keyTemp = key.next();
pr("kunci : "+keyTemp+", elemen : "+mapHash.get(keyTemp));
}
}
static void pr(Object o){
System.out.println(o);
}
}
Output:
kunci : key 1, elemen : elemen 5
kunci : key 2, elemen : elemen 2
kunci : key 3, elemen : elemen 3
BUILD SUCCESSFUL (total time: 0 seconds)



3.HashTable

–class Hashtable
  dapat memapingkan object keys dan value.  Null object bisa digunakan di sebagai key ataupun value.

-agar berhasil melakukan pertukaran data., object yang digunakan sebagai key harus mengimplemntasikan method hashCode ( ) & equals ( ).
- adapun konstructor2 nya adalah sbb :


Konstructor Dari HashMap

Hashtable()     Default kostructor, dengan element kosong dan default kapasitas element 16.
Hashtable(int initialCapacity)    KOnstruntor untuk instance Hashtable dengan parameter initialCapacity yang merupakan kapasitas dari hashmap tsb.
Hashtable(int initialCapacity, float loadFactor)      Hampir sama dengan kostructor diatas akan tetapi ada parameter tambahan berupa loadFactor
Hashtable(MapK,? extends V> m)      KOnstructor dengan parameter Map m, sehingga Hashtable akan otomatis terisi.
-method2 nya


-Example :


import java.util.*;
/**
*
* @author Administrator
*/
public class HashtableExample {
public static void main(String args[]){
//inisialisai default HashTable
Hashtable TableHash = new Hashtable();
TableHash.put(new Person("joko", 21), "elemen 1");
TableHash.put(new Person("susilo", 21), "elemen 2");
TableHash.put(new Person("rosy", 21), "elemen 3");
TableHash.put(new Person("laburger", 31), "elemen 4");
//akan di inject
TableHash.put(new Person("laburger", 21), "elemen 4");
Person temp = null;
Enumeration enumkey = TableHash.keys();
while(enumkey.hasMoreElements()){
temp = enumkey.nextElement();
pr("key : "+temp + ", elemen : "+TableHash.get(temp));
}
}
static void pr(Object o){
System.out.println(o);
}
}
class Person{
private String name;
private int umur;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getUmur() {
return umur;
}
public void setUmur(int umur) {
this.umur = umur;
}
public Person(String name, int umur){
this.name = name;
this.umur = umur;
}
@Override
public boolean equals(Object obj) {
if(obj instanceof Person){
if( (((Person)obj).getName().equals(this.name)) && (((Person)obj).getName().equals(this.name))) {
return true;
}else
return false;
}
else
return false;
}
@Override
public int hashCode() {
return this.name.length() + this.umur;
}
@Override
public String toString() {
return "Person dengan nama : "+this.name + ", umur : "+this.umur;
}
}
output:
key : Person dengan nama : laburger, umur : 21, elemen : elemen 4
key : Person dengan nama : laburger, umur : 31, elemen : elemen 4
key : Person dengan nama : susilo, umur : 21, elemen : elemen 2
key : Person dengan nama : rosy, umur : 21, elemen : elemen 3
key : Person dengan nama : joko, umur : 21, elemen : elemen 1
BUILD SUCCESSFUL (total time: 0 seconds)


 Untuk contoh program HashSet, HashMap, dan HashTable bisa di download disini:



Semoga ilmu yang sedikit ini bermanfaat. Amiieee......n ^_^


sumber: http://ilhamiarie.wordpress.com/2009/12/01/java-collection-framework-hashtable-hashmap-hashset/

No comments:

Post a Comment