• 常用的Lambda操作


    1、打印集合中的数据

    List<String> list = Arrays.asList("zhangsan", "lisi", "wangwu");
    //打印集合内的数据
    for(String s : list){
        System.out.println(s);
    }
    list.forEach(System.out::println);
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2、列表排序

    List<String> list = Arrays.asList("zhangsan", "lisi", "wangwu");
    list.sort(new Comparator<String>() {
        @Override
        public int compare(String o1, String o2) {
            return o1.compareTo(o2);
        }
    });
    list.sort((s1, s2) -> s1.compareTo(s2));
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3、过滤列表

    List<String> list = Arrays.asList("zhangsan", "lisi", "wangwu");
    List<String> list2 = list.stream().filter(s -> 			
                                            s.startsWith("z")).collect(Collectors.toList());
    
    • 1
    • 2
    • 3

    4、映射:获取列表中的每个元素的长度

    List<String> list = Arrays.asList("zhangsan", "lisi", "wangwu");
    List<Integer>list3 = new ArrayList<>();
    for(String s : list){
        list3.add(s.length());
    }
    
    List<Integer>list4 = list.stream().map(s -> s.length()).collect(Collectors.toList());
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    5、对列表中的数据进行求和操作

    List<Integer> list5 = Arrays.asList(1,2,3,4,5);
    Integer sum1 = 0;
    for(Integer i : list5){
        sum1 += i;
    }
    int sum2 = list5.stream().reduce(0, (a, b) -> a + b);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    6、分组操作

    List<String> list = Arrays.asList("zhangsan", "lisi", "wangwu");
    Map<Integer, List<String>> group = new HashMap<>();
    for(String s : list){
        if(!group.containsKey(s.length())){
            group.put(s.length(), new ArrayList<>());
        }
        group.get(s.length()).add(s);
    }
    Map<Integer, List<String>>group2 = list.stream().collect(Collectors.groupingBy(String::length));
    Map<Integer, List<String>>group3 = list.stream().collect(Collectors.groupingBy(s -> s.length()));
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    7、实现接口

    MyInterFace myInterFace = new MyInterFace() {
        @Override
        public void doSomeThing(String s) {
            System.out.println(s);
        }
    };
    
    MyInterFace myInterFace1 = s -> System.out.println(s);
    
    public interface MyInterFace{
        void doSomeThing(String s);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    8、创建线程

    Thread thread = new Thread(new Runnable() {
        @Override
        public void run() {
            System.out.println("hello world");
        }
    });
    thread.start();
    Thread thread1 = new Thread(() -> System.out.println("hello word"));
    thread1.start();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    9、进行判空操作

    String str = "hello word";
    if(str != null) str.toUpperCase();
           
    Optional.ofNullable(str).map(String::toUpperCase).ifPresent(System.out::println);
    
    • 1
    • 2
    • 3
    • 4

    10、流水线操作

    List<String> list6 = new ArrayList<>();
    for(String s : list){
        if(s.startsWith("a")){
            list6.add(s.toUpperCase());
        }
    }
    Collections.sort(list6);
    List<String> list7 = list.stream().filter(s -> s.startsWith("a")).map(String::toUpperCase).sorted().collect(Collectors.toList());
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • 相关阅读:
    SiO2/KH550修饰四氧化三铁纳米磁性颗粒|PDA包裹四氧化三铁磁性纳米颗粒(科研级)
    【Linux】单机版QQ之管道中的命名管道
    acwing语法类最长公共后缀
    【Java 进阶篇】JavaScript DOM 编程:理解文档对象模型
    IDEA一键启动多个微服务
    《架构整洁之道》读书笔记(下)
    ElasticSearch-查询语法(聚合查询)
    mysql innodb 事务隔离性实现原理
    kubesphere
    Jmeter 接口测试,参数值为列表,如何参数化?
  • 原文地址:https://blog.csdn.net/nankes/article/details/133185375