Java 7 might hoặc might not thực hiện đóng cửa và do đó hỗ trợ chức năng như thế này, nhưng hiện tại nó không, vì vậy trên máy ảo Java bạn có các tùy chọn để làm điều đó trong Groovy, Scala hoặc Clojure (có thể những người khác, quá), nhưng trong java bạn chỉ có thể đạt được điều đó bằng cách sử dụng những người trợ giúp như số Collections2.filter() của Guava.
JDK mã 7 mẫu:
findItemsLargerThan(List<Integer> l, int what){
return filter(boolean(Integer x) { x > what }, l);
}
findItemsLargerThan(Arrays.asList(1,2,5,6,9), 5)
Groovy mẫu mã:
Arrays.asList(1,2,5,6,9).findAll{ it > 5}
Ổi Sample Code:
Collections2.filter(Arrays.asList(1, 2, 5, 6, 9),
new Predicate<Integer>(){
@Override
public boolean apply(final Integer input){
return input.intValue() > 5;
}
}
);
Scala mẫu mã (nhờ Bolo):
Array(1, 2, 5, 6, 9) filter (x => x > 5)
Nguồn
2010-09-21 12:15:55
Hoặc Java 8: http://blogs.oracle.com/mr/entry/rethinking_jdk7 – Thilo
@Thilo argh, tin xấu. thx cho liên kết –
cảm ơn thông tin! – Graslandpinguin