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]