Memfilter Collection


Pernah memfilter sebuah collection ? Misal kita punya collection yang berisikan data Mahasiswa, setelah itu kita mau mengambil seluruh mahasiswa yang berjenis kelamin Perempuan. Jika menggunakan database, sangat mudah, tinggal SELECT * FROM MAHASISWA WHERE JENIS_KELAMIN = 'PEREMPUAN' Tapi bagaimana jika dalam collection?

Gampang aja, tinggal telusuri collection tersebut satu persatu menggunakan perulangan, setelah itu cek setiap recordnya, jika berjenis kelamin perempuan, maka ambil data itu 😀 Gitu aja kok repot….

Yup, memang, saat ini kita mau menggunakan cara yang merepotkan 😀

Pertama kita buat sebuah interface Filter, interface ini nanti digunakan untuk melakukan pengecekah apakah data diterima atau tidak :


package khannedy.blogging.collection;

public interface Filter<T> {

	boolean include(T data);

}

Setelah itu kita buat sebuah kelas CollectionUtil, kelas ini yang nanti digunakan sebagai kelas utilitas yang melakukan proses filtering menggunakan interface Filter sebelumnya yang telah dibuat.


package khannedy.blogging.collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

public class CollectionUtil {

	public static <T> Collection<T> filter(Collection<T> source, Filter<T> filter) {
		List<T> list = new ArrayList<T>();

		for (T data : source) {
			if (filter.include(data)) {
				list.add(data);
			}
		}

		return list;
	}

}

Dengan demikian, sekarang jika kita akan memfilter data sebuah Collection, tinggal menggunakan perintah :


List<Mahasiswa> list = new ArrayList<Mahasiswa>();

Collection<Mahasiswa> hasil = CollectionUtil.<Mahasiswa> filter(list, new Filter<Mahasiswa>() {

	@Override
	public boolean include(Mahasiswa data) {
		if (data.getJenisKelamin().equals("Perempuan")) {
			return true;
		} else {
			return false;
		}
	}
});

Haha, kalo ada yang ribet kenapa mesti yang mudah? Silahkan anda pikirkan sendiri kenapa saya menggunakan cara coding seperti ini 😀

Iklan

5 pemikiran pada “Memfilter Collection

  1. mas eko, mau tanya nih, tentang penggunaan

    pd method public static List filter(Collection source, Filter filter)

    1. itu artinya T merupakan sebuah class baru yg blun kita definisikan ya?

    2. lalu pada parameter Collection , T disini bisa di isi dengan Object apapun ya?

    oh ya, saya kesulitan memahami tentang penggunaan keyword static, tolong mas eko memberikan penjelasan secara singkat dunk…hehe

    thx a lot mas

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s