Lambda 案例
Posted viewgroup
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lambda 案例相关的知识,希望对你有一定的参考价值。
目录
1. 循环调用方法
public class Test1
@Test
public void test1()
List<String> list= Arrays.asList("foreach", "循环", "执行", "某一个", "方法");
A a=new A();
list.forEach(a::say);
public class A
public void say(String str)
System.out.println("我说着这样一句话 " + str);
输出结果为
我说着这样一句话 foreach
我说着这样一句话 循环
我说着这样一句话 执行
我说着这样一句话 某一个
我说着这样一句话 方法
2.stream 的使用
2.1 map的使用
map的作用是改变list的结构,比如一个list里面原始对象为user,我希望获取user的所有id,之前的做法是for循环,然后获取,有了map就可以直接转
@Test
public void stream()
List<User> list=new ArrayList<>();
list.add(new User(1,"sunsy"));
list.add(new User(2,"xuxl"));
list.add(new User(3,"yy"));
List<Integer> ids=list.stream().map(User::getId).collect(Collectors.toList());
ids.forEach(System.out::println);
@Data
@AllArgsConstructor
public class User
private Integer id;
private String name;
//输出结果为
1
2
3
2.2 filter 的用法
filter是将不符合条件的数据删除,留下符合条件的数据
@Test
public void stream()
List<User> list = new ArrayList<>();
list.add(new User(1, "sunsy"));
list.add(new User(2, "xuxl"));
list.add(new User(3, "yy"));
list = list.stream().filter(user -> user.getName().startsWith("sun")).collect(Collectors.toList());
list.forEach(System.out::println);
//输出结果为
id is 1 name is sunsy
2.3 flatMap
flatMap是将多个小集合合并成一个大集合
@Test
public void stream()
List<User> list = new ArrayList<>();
list.add(new User(1, "sunsy"));
list.add(new User(2, "xuxl"));
list.add(new User(3, "yy"));
List<User> list1 = new ArrayList<>();
list.add(new User(4, "sunsy"));
list.add(new User(5, "xuxl"));
list.add(new User(6, "yy"));
List<List<User>> users=new ArrayList<>();
users.add(list);
users.add(list1);
List<User> result=users.stream().flatMap(it->it.stream()).collect(Collectors.toList());
result.forEach(System.out::println);
//输出结果为
id is 1 name is sunsy
id is 2 name is xuxl
id is 3 name is yy
id is 4 name is sunsy
id is 5 name is xuxl
id is 6 name is yy
后续慢慢更新
以上是关于Lambda 案例的主要内容,如果未能解决你的问题,请参考以下文章
Java新特性Lambda表达式典型案例,你想要的的都在这儿了!!