1.四大核心函数式接口
//Consumer<T>使用案例
public void test1() {
happyTime(500.0, new Consumer<Double>() {
@Override
public void accept(Double aDouble) {
System.out.println("买了瓶矿泉水,花了" + aDouble);
}
});
happyTime(900.0, aDouble -> System.out.println("买了瓶矿泉水,支付" + aDouble));
}
public void happyTime(Double money, Consumer<Double> con) {
con.accept(money);
}
//Predicate<T>使用案例
public void test2() {
List<String> stringList = Arrays.asList("北京", "天津", "南京", "普京", "鲸鱼");
List<String> filterList = filterString(stringList, new Predicate<String>() {
@Override
public boolean test(String s) {
return s.contains("京");
}
});
List<String> filterList2 = filterString(stringList, (s) -> s.contains("京"));
System.out.println(filterList);
System.out.println(filterList2);
}
//根据给定的规则,过滤集合中的字符串。此规则由Predicate的方法决定
public static List<String> filterString(List<String> list, Predicate<String> pre) {
ArrayList<String> filterList = new ArrayList<>();
for (String s : list) {
if (pre.test(s)) {
filterList.add(s);
}
}
return filterList;
}
2.其他接口