Bộ sưu tập Commons - Lọc đối tượng
Lớp CollectionUtils của thư viện Apache Commons Collections cung cấp nhiều phương thức tiện ích khác nhau cho các hoạt động phổ biến bao gồm nhiều trường hợp sử dụng. Nó giúp tránh viết mã soạn sẵn. Thư viện này rất hữu ích trước jdk 8 vì các chức năng tương tự hiện được cung cấp trong API luồng của Java 8.
phương thức filter ()
Phương thức filter () của CollectionUtils có thể được sử dụng để lọc danh sách nhằm loại bỏ các đối tượng không thỏa mãn điều kiện do vị từ truyền vào.
Tờ khai
Sau đây là khai báo cho
org.apache.commons.collections4.CollectionUtils.filter() phương pháp -
public static <T> boolean filter(Iterable<T> collection,
Predicate<? super T> predicate)
Thông số
collection - Bộ sưu tập để lấy đầu vào từ đó, không được rỗng.
predicate - Vị từ để sử dụng như một bộ lọc, có thể rỗng.
Giá trị trả lại
Đúng nếu bộ sưu tập được sửa đổi bởi lệnh gọi này, sai nếu không.
Thí dụ
Ví dụ sau đây cho thấy việc sử dụng org.apache.commons.collections4.CollectionUtils.filter()phương pháp. Chúng tôi sẽ lọc danh sách các số nguyên để chỉ lấy các số chẵn.
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);
}
}
Đầu ra
Nó sẽ tạo ra kết quả sau:
Original List: [1, 2, 3, 4, 5, 6, 7, 8]
Filtered List (Even numbers): [2, 4, 6, 8]
phương thức filterInverse ()
Phương thức filterInverse () của CollectionUtils có thể được sử dụng để lọc danh sách nhằm loại bỏ các đối tượng thỏa mãn điều kiện do vị từ truyền vào.
Tờ khai
Sau đây là khai báo cho
org.apache.commons.collections4.CollectionUtils.filterInverse() phương pháp -
public static <T> boolean filterInverse(
Iterable<T> collection, Predicate<? super T> predicate)
Thông số
collection - Bộ sưu tập để lấy đầu vào từ đó, không được rỗng.
predicate - Vị từ để sử dụng như một bộ lọc, có thể rỗng.
Giá trị trả lại
Đúng nếu bộ sưu tập được sửa đổi bởi lệnh gọi này, sai nếu không.
Thí dụ
Ví dụ sau đây cho thấy việc sử dụng org.apache.commons.collections4.CollectionUtils.filterInverse()phương pháp. Chúng tôi sẽ lọc danh sách các số nguyên để chỉ lấy các số lẻ.
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);
}
}
Đầu ra
Kết quả như được nêu dưới đây -
Original List: [1, 2, 3, 4, 5, 6, 7, 8]
Filtered List (Odd numbers): [1, 3, 5, 7]