new小括号花括号组成的是匿名内部类。
变量(没有变量用小括号)剪头方法体组成的是lamda表达式。
lamda可以认为是简化的匿名内部类
ArrayList<String> list2 = new ArrayList<>();
list2.add("张三丰");
list2.add("张丰");
list2.add("三丰");
Stream<String> stream = list2.stream();
// lamda表达式可以认为是简化的匿名内部类,变量箭头方法体
List<String> collect = stream.filter(name->name.startsWith("张")).filter(name->name.length()==3).collect(Collectors.toList());
collect.stream().forEach(name->System.out.println(name)); // 张三丰
new Thread(()->{
System.out.println(111);
}).start();
List<User> list = new ArrayList<>();
User user1 = new User();
user1.setUserId(1);
user1.setName("James");
user1.setAge(13);
list.add(user1);
User user2 = new User();
user2.setUserId(2);
user2.setName("Tom");
user2.setAge(21);
list.add(user2);
// 两种书写方式都可以,一个是map里面,使用每一个实例调用User类的getName方法返回值就是转化后的值。
List<String> tableNames = list.stream().map(User::getName).collect(Collectors.toList());
tableNames.stream().forEach(s -> System.out.println(s));
List<String> tableNames1 = list.stream().map(u -> u.getName()).collect(Collectors.toList());
tableNames1.stream().forEach(s -> System.out.println(s));
网友评论