Koleksi Commons - Memfilter Objek
Kelas CollectionUtils dari pustaka Koleksi Apache Commons menyediakan berbagai metode utilitas untuk operasi umum yang mencakup berbagai kasus penggunaan. Ini membantu menghindari penulisan kode boilerplate. Library ini sangat berguna sebelum jdk 8 karena fungsi serupa sekarang tersedia di Stream API Java 8.
filter ()
filter () metode CollectionUtils dapat digunakan untuk memfilter daftar untuk menghapus objek yang tidak memenuhi kondisi yang diberikan oleh predikat yang diteruskan.
Pernyataan
Berikut adalah deklarasi untuk
org.apache.commons.collections4.CollectionUtils.filter() metode -
public static <T> boolean filter(Iterable<T> collection,
Predicate<? super T> predicate)
Parameter
collection - Koleksi untuk mendapatkan masukan, tidak boleh nol.
predicate - Predikat untuk digunakan sebagai filter, boleh nihil.
Nilai Kembali
Benar jika koleksi diubah oleh panggilan ini, salah jika sebaliknya.
Contoh
Contoh berikut menunjukkan penggunaan org.apache.commons.collections4.CollectionUtils.filter()metode. Kami akan memfilter daftar integer untuk mendapatkan angka genap saja.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;
public class CollectionUtilsTester {
public static void main(String[] args) {
List<Integer> integerList = new ArrayList<Integer>();
integerList.addAll(Arrays.asList(1,2,3,4,5,6,7,8));
System.out.println("Original List: " + integerList);
CollectionUtils.filter(integerList, new Predicate<Integer>() {
@Override
public boolean evaluate(Integer input) {
if(input.intValue() % 2 == 0) {
return true;
}
return false;
}
});
System.out.println("Filtered List (Even numbers): " + integerList);
}
}
Keluaran
Ini akan menghasilkan hasil sebagai berikut -
Original List: [1, 2, 3, 4, 5, 6, 7, 8]
Filtered List (Even numbers): [2, 4, 6, 8]
filterInverse ()
filterInverse () metode CollectionUtils dapat digunakan untuk memfilter daftar untuk menghapus objek, yang memenuhi kondisi yang diberikan oleh predikat yang diteruskan.
Pernyataan
Berikut adalah deklarasi untuk
org.apache.commons.collections4.CollectionUtils.filterInverse() metode -
public static <T> boolean filterInverse(
Iterable<T> collection, Predicate<? super T> predicate)
Parameter
collection - Koleksi untuk mendapatkan masukan, tidak boleh nol.
predicate - Predikat untuk digunakan sebagai filter, boleh nihil.
Nilai Kembali
Benar jika koleksi diubah oleh panggilan ini, salah jika sebaliknya.
Contoh
Contoh berikut menunjukkan penggunaan org.apache.commons.collections4.CollectionUtils.filterInverse()metode. Kami akan memfilter daftar bilangan bulat untuk mendapatkan angka ganjil saja.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;
public class CollectionUtilsTester {
public static void main(String[] args) {
List<Integer> integerList = new ArrayList<Integer>();
integerList.addAll(Arrays.asList(1,2,3,4,5,6,7,8));
System.out.println("Original List: " + integerList);
CollectionUtils.filterInverse(integerList, new Predicate<Integer>() {
@Override
public boolean evaluate(Integer input) {
if(input.intValue() % 2 == 0) {
return true;
}
return false;
}
});
System.out.println("Filtered List (Odd numbers): " + integerList);
}
}
Keluaran
Hasilnya seperti yang dinyatakan di bawah ini -
Original List: [1, 2, 3, 4, 5, 6, 7, 8]
Filtered List (Odd numbers): [1, 3, 5, 7]