java内置的四大核心函数式接口
- 消费型接口Consummer void accept(T t)
- 供给型接口Supplier T get()
- 函数型接口Function R apply(T t)
- 断定型接口Predicate boolean test(T t)
例子:
public class LambdaTest2 {
@Test
public void test1(){
happyTime(300, new Consumer< Double >() {
@Override
public void accept(Double aDouble) {
System.out.println("学习太累了,出去玩。花了"+aDouble);
}
});
System.out.println("*************************");
happyTime(400,money -> System.out.println("学习太累了,出去玩。花了"+money));
}
public void happyTime(double money, Consumer<Double>con){
con.accept(money);
}
@Test
public void test2(){
List<String> list= Arrays.asList("北京","天津","东京","南京","西京");
List< String > list1 = filterString(list, new Predicate< String >() {
@Override
public boolean test(String s) {
return s.contains("京");
}
});
System.out.println(list1);
System.out.println("*********************************");
List< String > list2 = filterString(list,s-> s.contains("京"));
System.out.println(list2);
}
//根据给定的规则,过滤集合中的字符串。此规则由Predicate的方法决定
public List< String > filterString(List<String> list, Predicate<String> pre){
ArrayList<String> filterlist =new ArrayList<String>();
for (String s: list
) {
if(pre.test(s)){
filterlist.add(s);
}
}
return filterlist;
}
}