• lambda表达式(二)


    lambda表达式公司用的还是比较多的,今天特意写一篇博客记录下来,公司经常使用的该lambda表达式的常用表达方式,现在想想,其实这种方式还是比较好的,最起码挺高大上的。

    package com.zyq;

    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    import java.util.function.Function;
    import java.util.stream.Collectors;

    /**
     * 练习使用lamda表达式
     */
    public class LamdaTest {
        public static void main(String[] args) {
            User user1 = new User(1, "a1");
            User user2 = new User(2, "a2");
            User user3 = new User(3, "a3");
            User user4 = new User(4, "a4");
            User user5 = new User(5, "a5");
            List<User> usersList = new ArrayList<>();
            usersList.add(user1);
            usersList.add(user2);
            usersList.add(user3);
            usersList.add(user4);
            usersList.add(user5);
            //stream:转换成流 filter:过滤 map:要显示的内容
            List<String> collect = usersList.stream().filter(user -> user.getId() >= 2).map(user -> user.getName()).collect(Collectors.toList());
            //这种写法也是可以的 将要返回的值使用大括号进行包裹,并用return进行返回,这在实际项目中使用的是比较多的。
    //        List<String> collect = usersList.stream().filter(user -> user.getId() >= 2).map(user -> {return user.getName();}).collect(Collectors.toList());
            System.out.println(collect);

        }
    }

    运行结果:

    [a2, a3, a4, a5]

    package com.zyq;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    import java.util.function.Function;
    import java.util.stream.Collectors;
    
    /**
     * 练习使用lamda表达式
     */
    public class LamdaTest {
        public static void main(String[] args) {
            User user1 = new User(1, "a1");
            User user2 = new User(2, "a2");
            User user3 = new User(3, "a3");
            User user4 = new User(4, "a4");
            User user5 = new User(5, "a5");
            List<User> usersList = new ArrayList<>();
            usersList.add(user1);
            usersList.add(user2);
            usersList.add(user3);
            usersList.add(user4);
            usersList.add(user5);
    
            //将list集合转换成map集合,其中,userId为map的key,username为map的value,如果两个键相同,值取第一个
            Map<Integer, User> map = usersList.stream().collect(Collectors.toMap(User::getId, Function.identity(), (a, b) -> a));
            for (Map.Entry<Integer, User> stringEntry : map.entrySet()) {
                System.out.println(stringEntry.getKey()+"--"+stringEntry.getValue());
            }
    
        }
    }
    

      

    运行结果:

    1--User{id=1, name='a1'}
    2--User{id=2, name='a2'}
    3--User{id=3, name='a3'}
    4--User{id=4, name='a4'}
    5--User{id=5, name='a5'}

    package com.zyq;
    
    import com.treemappractice.Student;
    
    import java.text.Normalizer;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    import java.util.function.Function;
    import java.util.stream.Collectors;
    
    /**
     * 练习使用lamda表达式
     */
    public class LamdaTest {
        public static void main(String[] args) {
            User user1 = new User(1, "a1");
            User user2 = new User(2, "a2");
            User user3 = new User(3, "a3");
            User user4 = new User(4, "a1");
            User user5 = new User(5, "a2");
            User user6 = new User(6, "a3");
            List<User> usersList = new ArrayList<>();
            usersList.add(user1);
            usersList.add(user2);
            usersList.add(user3);
            usersList.add(user4);
            usersList.add(user5);
            usersList.add(user6);
    
            //将list转化成map集合,并按照姓名进行分组,查找姓名重复的
            Map<String, List<User>> userMap = usersList.stream().collect(Collectors.groupingBy(user -> user.getName()));
            for (String key : userMap.keySet()) {
                System.out.println("key:"+"--"+key+",value:"+userMap.get(key));
            }
        }
    }
    

      

    运行结果:

    key:--a1,value:[User{id=1, name='a1'}, User{id=4, name='a1'}]
    key:--a2,value:[User{id=2, name='a2'}, User{id=5, name='a2'}]
    key:--a3,value:[User{id=3, name='a3'}, User{id=6, name='a3'}]

  • 相关阅读:
    Servlet学习小结
    HTTP学习小结
    SpringMVC第二天
    使用Servlet 编写过滤器
    项目使用框架
    java-web
    SSM框架集成.下(供自己练习查阅用)
    SSM框架集成.中(供自己练习查阅用)
    SSM框架集成.上(供自己练习查阅用)
    debug
  • 原文地址:https://www.cnblogs.com/dongyaotou/p/14853314.html
Copyright © 2020-2023  润新知