Java Intermediate: Collections
Java API menyediakan beberapa struktur data yang sudah didefinisikan, yang kita sebut dengan Collections.
Collections ini kita gunakan untuk menyimpan sekumpulan objek-objek yang saling berkaitan. Kelas-kelas (dari package Java.util.*
) ini dilengkapi dengan sekumpulan method yang dapat mengorganisasikan, menyimpan dan me-retrieve data tanpa harus tau bahaimana data itu disimpan. Dan ini berguna untuk membuat waktu saat aplikasi di-develop berkurang dan lebih efisien.
ArrayList
Salah satu contohnya adalah ArrayList<T>
. Biasanya kita menggunakan array untuk menyimpan data yang berurutan, tapi ada satu masalah dengan Array, ukurannya nggak bisa berubah secara dinamis saat di waktu eksekusi untuk menampung elemen-elemen tambahan. Nah, itulah kelebihan dari kelas Collection ArrayList<T>
, ukurannya bisa berubah secara dinamis untuk menampung lebih banyak elemen. Berikut contohnya:
<T>
sendiri adalah sebuah placeholder, yang bisa dirubah dengan tipe elemen apapun yang kamu mau ArrayList
simpan. Ini mirip saat kita menspesifikasikan tipe data saat mendeklarasikan array, tapi hanya tipe data nonprimitif saja yang bida digunakan dengan kelas-kelas collection ini. Contohnya,
ArrayList< String > list;
mendeklarasikan sebuah ArrayList
yang hanya dapat menyimpan Strings
. Kumpulan method dari ArrayList bisa dilihat di selengkapnya dibagian dokumentasi.
Contoh penggunaan ArrayList
:
//Contoh Penggunaan Array List
package psbo;
import java.util.*;
public class PSBO {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
ArrayList< String > items = new ArrayList< String >();
items.add( "red"); // menambah item red
items.add( 0,"yellow");
System.out.print("Tampilkan isi list:");
for( int i=0; i < items.size(); i++ )
System.out.printf(" %s", items.get( i ) );
display( items, "\nTampilkan isi list yang akan ditambah:");
items.add( "green");
items.add( "yellow" );
display( items, "Hilangkan list yang dengan dua elemen:" );
items.remove("yellow"); // menghapus item yellow
display( items, "Hilangkan instance pertama yellow:" );
items.remove(1 );
display( items, "hapus list elemen kedua(green):");
System.out.printf("\"red\" is %sin the list\n", items.contains("red")?"": "not ");
System.out.printf( "Size: %s\n", items.size() );
}
public static void display( ArrayList< String > items, String header ) {
System.out.print( header );
for( String item : items )
System.out.printf(" %s", item );
System.out.println();
}
}
Collection Method Sort
Contoh method lain yang ada di Collection adalah sort
, yang sesuai namanya digunakan untuk mengurutkan. Contohnya:
//Sorting
import java.util.*;
public class Contoh {
public static void main(String[] args) {
String[] namaDoang = {"apel", "lemon", "dodol", "cireng", "youtube"};
List<String> l1 = Array.aslist(namaDoang);
Collections.sort(l1);
System.out.printf("%s\n", l1);
Collections.sort(l1, Collections.reverseOrder());
System.out.printf("%s\n", l1);
}
}
Di baris 6, kita mengubah array menjadi dalam bentuk list.
Di baris 8, kalau kita hanya memberi satu parameter dalam Collections.sort()
dia secara otomatis akan mengurutkan data secara alfabetis. Bila kita mau menambahkan aturan bagaimana data tersebut di urutkan, kita bisa masukkan parameter kedua seperti pada baris 11, yaitu secara terbalik.
Ada banyak jenis collection yang bisa digunakan dan dicoba, silahkan explore lebih jauh dan penggunaannya sesuai kebutuhan. Slide lengkap dari materi collections bisa di download disini.