lamda表达式与匿名内部类

2023-11-18  本文已影响0人  屎倒淋头还嚼便

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));

上一篇 下一篇

猜你喜欢

热点阅读