行为参数化
- 就是一个方法接收多个不同的行为作为参数,并在内部使用它们,完成不同行为的能力。
使用Lambda表达式
public interface Predicate<T> {
boolean test(T t);
}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class AppleTest {
public static <T> List<T> filter(List<T> list, Predicate<T> p) {
List<T> result = new ArrayList<T>();
for (T t : list) {
if (p.test(t)) {
result.add(t);
}
}
return result;
}
public static void main(String[] args) {
List<Apple> apples = Arrays.asList(new Apple("red", 100),
new Apple("green", 200));
List<Apple> apples1 = filter(apples, (Apple apple) -> "red".equals(apple.getColor()));
for (Apple a : apples1) {
System.out.println(a.getColor());
}
List<Integer> numbers = Arrays.asList(1, 2, 3, 4);
List<Integer> filter = filter(numbers, (Integer i) -> i % 2 == 0);
for (Integer i : filter) {
System.out.println(i);
}
}
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。