Rabu, 14 Desember 2011

Pengurutan List (Java)


Mengurutkan list adalah operasi yang cukup umum dilakukan, dan seharusnya ada metode untuk mengurut list di dalam interface List. Kenyataannya tidak ada.

Akan tetapi metode untuk mengurut List tersedia sebagai metode statik dalam kelas java.util.Collections. Kelas ini memiliki berbagai metode statik yang digunakan untuk membantu kelas-kelas koleksi :

- Collections.sort(list) digunakan untuk mengurut list dalam urutan menaik. Item di dalam list harus mengimplementasikan interface Comparable, misalnya pada String.

- Collections.sort(list,komparator), digunakan untuk mengurut list menggunakan komparator (pembanding) sendiri yang diberikan di dalam metode. Komparator adalah objek yang memiliki metode compare() yang digunakan untuk membandingkan dua objek. Kita akan lihat contohnya nanti.

- Collections.shuffle(list) digunakan untuk mengacak list.

- Collections.reverse(list) digunakan untuk membalik urutan elemen di dalam list, sehingga elemen terakhir menjadi elemen pertama dan sebaliknya.

Karena metode pengurutan yang cukup efisien sudah diberikan untuk List, kita tidak perlu membuat metode pengurutan sendiri. Tentunya kita akan bertanya apakah ada metode pengurutan untuk array biasa. Jawabannya adalah ya.

Pengurutan array juga tersedia dalam metode statik dalam kelas java.util.Arrays.

- Arrays.sort(A) digunakan untuk mengurut array A, asalkan tipe dasar A adalah tipe dasar primitif (kecuali boolean) atau jika A adalah array Object yang mengimplementasikan interface Comparable.

- Arrays.sort(A, indeksAwal, indeksAkhir) digunakan untuk mengurut sebagian array saja. Ini penting karena array kadang hanya terisi sebagian. Perintah ini mengurut array dari elemen A[indeksAwal], A[indeksAwal + 1], ... hinggaA[indeksAkhir - 1] dalam urutan menaik. Array.sort(A, 0, N) bisa digunakan untuk mengurut N elemen pertama di array A.

Java tidak mendukung pemrograman generik untuk tipe primitif. Untuk mengimplementasikan perintah Arrays.sort(A), kelasArrays memiliki 8 metode : satu metode untuk array Object dan masing-masing satu metode untuk tipe primitif byte, short,int, long, float, double, dan char.

Tidak ada komentar:

Posting Komentar