Java menyediakan library API untuk mengelola sekelompok item
data, yaitu melalui Array dan Collections.Tujuannya ialah untuk memudahkan proses pengelolaan dan
pengaksesan data tersebut untuk keperluan program.
Array: mekanisme paling dasar.
Collection tingkat lanjut: list, set, map, vector, hashmap,
hashtable.
ARRAYLIST
ARRAY
Merupakan objek yang menyimpan sejumlah nilai dengan tipe
tunggal yang jumlah atau panjangnya (nilai tersebut) bersifat tetap. Ukuran atau panjang dari array ini ditentukan
pada saat dibuat , dan bersifat tetap.
int[]
iArray;
// mengalokasikan variabel array untuk 4 buah
bilangan bulat
iArray = new
int[4];
//
inisialisasi elemen ke-1
iArray[0] = 100;
//
inisialisasi elemen ke-2
iArray[1] = 200;
iArray[2] =
300;
iArray[3] =
400;
System.out.println("Elemen
index 0: " + iArray[0]); System.out.println("Elemen index 1: " +
iArray[1]); System.out.println("Elemen index 2: " + iArray[2]);
System.out.println("Elemen index 3: " + iArray[3]);
LIST
Collection yang urut, biasa juga disebut Sequence. User bisa
mengatur di di bagian mana, sebuah elemen bisa diselipkan. User juga mengakses
elemen melalui indexnya, dan juga mencari elemen2 di dalam list tersebut.
List merupakan Interface. Untuk itu ia harus
diimplementasikan, antara lain sebagai vector, arraylist, linkedlist,
AbstractList.
Nilai List bisa didapatkan dengan interface Iterator.
Anda perhatikan pada contoh sesudah ini,
baik ArrayList maupun LinkedList diakses melalui penggunaan Iterator.
ITERATOR
Interface
untuk mengakses Collection.
Method:
hasNext()
-> true atau false, untuk mengecek elemen berikutnya
Next() ->
isi elemen berikutnya.
ListIterator
•
ListIterator adalah subinterface dari Iterator.
• Dengan
menggunakan ListIterator pada List, maka elemen dapat diambil secara backward.
• Gunakan
method next atau previous sebagai navigasi
VECTOR
An ordered collection (also known as a sequence). The
user of this interface has precise control over where in the list each element
is inserted. The user can access elements by their integer index (position in
the list), and search for elements in the list.
// vector digunakan apabila anda ingin menyimpan data object
// secara dinamis pengganti array
Vector newVector = new Vector();
//menambahkan data vector
newVector.add("Ini Data object string, untuk Index awal vector");
newVector.add("ini data object string ke dua");
newVector.add("ini data object String ke tiga dan terakhir");
// menampilkan data vector pertama
System.out.println("Data Vector Pertama : "+newVector.get(0));
System.out.println("Data Vector Pertama : "+newVector.firstElement());
// menampilkan data vector ketiga
System.out.println("Data Vector Ketiga : "+newVector.elementAt(2));
System.out.println("Data Vector Ketiga : "+newVector.lastElement());
//mencari index vector dan ditampilkan
int idxCari = newVector.indexOf("ini data object string ke dua");
System.out.println("nilai Index cari adalah : "+idxCari);
if (idxCari>=0)
System.out.println("Data yang dicari adalah : "+newVector.get(idxCari));
//menampilkan vector dengan perulangan dan size
for (int i=0; i < newVector.size();i++)
System.out.println(i+":"+newVector.get(i));
//menampilkan vector dengan iterator "for-loop"
for (Iterator d = newVector.iterator(); d.hasNext(); ) {
System.out.println("->"+d.next());
}
//menampilkan vector dengan iterator "while-loop"
Iterator ulang=newVector.iterator();
while (ulang.hasNext())
System.out.println("*"+(String)ulang.next());
// secara dinamis pengganti array
Vector newVector = new Vector();
//menambahkan data vector
newVector.add("Ini Data object string, untuk Index awal vector");
newVector.add("ini data object string ke dua");
newVector.add("ini data object String ke tiga dan terakhir");
// menampilkan data vector pertama
System.out.println("Data Vector Pertama : "+newVector.get(0));
System.out.println("Data Vector Pertama : "+newVector.firstElement());
// menampilkan data vector ketiga
System.out.println("Data Vector Ketiga : "+newVector.elementAt(2));
System.out.println("Data Vector Ketiga : "+newVector.lastElement());
//mencari index vector dan ditampilkan
int idxCari = newVector.indexOf("ini data object string ke dua");
System.out.println("nilai Index cari adalah : "+idxCari);
if (idxCari>=0)
System.out.println("Data yang dicari adalah : "+newVector.get(idxCari));
//menampilkan vector dengan perulangan dan size
for (int i=0; i < newVector.size();i++)
System.out.println(i+":"+newVector.get(i));
//menampilkan vector dengan iterator "for-loop"
for (Iterator d = newVector.iterator(); d.hasNext(); ) {
System.out.println("->"+d.next());
}
//menampilkan vector dengan iterator "while-loop"
Iterator ulang=newVector.iterator();
while (ulang.hasNext())
System.out.println("*"+(String)ulang.next());
ARRAYLIST
Adding values might be slow When you don’t know the
amount of values the array will contain when you create it, a lot of shifting
is going to be done in the memory space when the ArrayList manipulates its
internal array. Slow manipulation When you’ll want to add a value
randomly inside the array, between two already existing values, the array will
have to start moving all the values one spot to the right in order to let that
happen.
get(index)
-add(object);
- remove(index);
- removeAll(coll);
// List Example implement with
ArrayList
List<String>
ls=new ArrayList<String>();
ls.add(“satu");
ls.add(“dua");
ls.add(“tiga");
ls.add("four");
Iterator
it=ls.iterator();
while(it.hasNext()) { String
value=(String)it.next();
System.out.println("Value
:"+value); }
LINKEDLIST
An ordered collection (sequence). The user of this
interface has precise control over where in the list each element is inserted.
The user can access elements by their integer index (position in the list), and
search for elements in the list.
1.Memberikan performance yang lebih baik untuk method add
dan remove dibandingkan
ArrayList.
2. Memberikan performance yang lebih jelek untuk method get
dan set dibandingkan
ArrayList. (No Random Acces), karena melakukannya secara iteratif
dengan melakukan scan setiap node.
-
No Random Access. Terdapat get()
-
Fast Manipulation
HASHTABLE
implements a hashtable, which maps keys to values. Any
non-null object can be used as a key or as a value. Hashtables are an extremely useful mechanism
for storing data. Hashtables work by mapping a key to a value, which is stored
in an in-memory data structure. Rather than searching through all elements of
the hashtable for a matching key, a hashing function analyses a key, and returns
an index number. This index matches a stored value, and the data is then
accessed.
Contoh:
Hashtable angka = new Hashtable();
angka.put(“satu",
new Integer(1));
angka.put(“dua",
new Integer(2));
angka.put(“tiga",
new Integer(3));
//To retrieve
a number, use the following code:
Integer n =
(Integer)angka.get(“dua");
if (n !=
null) {
System.out.println("two
= " + n);
}
HASHMAP
implements a
hashtable, which maps keys to values. Any non-null object can be used as a key
or as a value.
• 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.
HashMap<String, String> hst = new HashMap<String,
String>();
hst.put("satu","Amir");
hst.put("dua","Amran");
hst.put("tiga","Irsyad");
hst.put("empat","Dodi");
hst.put("lima","Kali");
System.out.println("HashMap: " + hst);
System.out.println(hst.size());
System.out.println(hst.get("tiga"));
No comments:
Post a Comment