JAVA中常用的10个Lambda表达式

1、集合遍历

    List<String> stringList = Arrays.asList("apppe","organge","banana");
    // 原来的方式
    for (String s : stringList) {
          System.out.println(s);
      }
    // lambda 表达式
    stringList.forEach(s->{
       System.out.println(s);
    });

2、排序

 List<Dog> dogs = Arrays.asList(new Dog[]{
                new Dog("n1", 12),
                new Dog("n2", 14),
                new Dog("n3", 11)
        });
        // 方法1
        Collections.sort(dogs, new Comparator<Dog>() {
            @Override
            public int compare(Dog o1, Dog o2) {
                return o1.getAge()>o2.getAge()?-1:1;
            }
        });
        // 方法2
        Collections.sort(dogs,(o1,o2)->(o1.getAge()>o2.getAge()?-1:1));
        dogs.forEach(s->{
            System.out.println(s.getAge());
        });

注意:-1:代表第一个对象,1:代表第二个对象 

3、过滤

         List<String> stringList = Arrays.asList("apple","organge","banana");
        // 获取集合中所有以“a”开头的字符串
        // 原来的方式
        List<String> newList = new ArrayList<String>();
        for (String s : stringList) {
            if(s.startsWith("a")){
                newList.add(s);
            }
        }
        // lambda表达式
        List<String> newList2 = stringList.stream().filter(s -> {
            if(s.startsWith("a")){
                return  true;
            }
            return false;
        }).collect(Collectors.toList());

4、映射

         List<String> stringList = Arrays.asList("apple","organge","banana");
        // 获取集合中所有字符串的长度
        // 原来的方式
        List<Integer> newList = new ArrayList<Integer>();
        for (String s : stringList) {
            newList.add(s.length());
        }
        // lambda表达式
        List<Integer> newList2 = stringList.stream().map(s -> {
            return s.length();
        }).collect(Collectors.toList());

        // lambda 表达式
        newList2.forEach(s->{
            System.out.println(s);
        });

注意:lambda表达式中的map函数把每个元素进行转换操作

5、规约

         List<Integer> numList = Arrays.asList(1,2,3,4,5);
        // 计算综合
        // 原来的方式
       Integer sum = 0;
        for (Integer s : numList) {
            sum += s;
        }
        // lambda表达式
        sum = numList.stream().reduce(0,(a,b)->{
            return  a+b;
        });

6、分组

  List<Dog> dogs = Arrays.asList(new Dog[]{
                new Dog("n1", 12),
                new Dog("n2", 14),
                new Dog("n3", 12)
        });
        // 根据年龄进行分组
        Map<Integer, List<Dog>> collect = dogs.stream()
.collect(Collectors.groupingBy(s -> s.getAge()));
        System.out.println(collect);

7、Stream流水操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值