Lambda 案例

Posted viewgroup

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lambda 案例相关的知识,希望对你有一定的参考价值。

目录

1. 循环调用方法

2.stream 的使用

2.1 map的使用

2.2 filter 的用法

2.3 flatMap


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 案例的主要内容,如果未能解决你的问题,请参考以下文章

Lambda 案例

Lambda 案例

Java新特性Lambda表达式典型案例,你想要的的都在这儿了!!

Java新特性Lambda表达式典型案例,你想要的的都在这儿了!!

Java8新特性——lambda表达式.(案例:词频统计)

Java8新特性——lambda表达式.(案例:完全数分类)