lambda表达式的常用操作

1.循环输出List
   List<string> list1 = Arrays.asList(new String []{"zhangSan","liSi","wangWu","zhaoLiu","tianQi"});

    //原来的方式
    forEach(String str:list1){
        System.Out.Println(str);
    }

    //lambda表达式
    list1.forEach(str -> System.Out.Println(str));
    //或者
    list1.forEach(System.Out::println);

2.循环输出Map
    Map<String, Object> map = new HashMap<>();
    map.put("A", 20);
    map.put("B", 30);
    map.put("C", 60);
    map.put("D", 10);
    map.put("E", 100);

    //原来的方式
    Set<string> set = map.keySet();
    forEach(String str : set){
        System.Out.Println(str+":"+map.get(str)+",");
    }

    //lambda表达式
    map.forEach((k,v) -> System.Out.Println(k+":"+ v +","););


3.对集合进行排序
    List<Integer> list = Arrays.asList(new Integer[]{19,2,3,5,12});
    //原来的方式
    Collections.sort(list,new Comparator<Integer>(){
        @Override
        public int compare(Integer a,Integer b){
            return a.compareTo(b);
        }
    });

    //lambda表达式
    Collections.sort( list , (a , b) -> a.compareTo(b));

4.将对象集合(List) 中的属性取出放入另一个 List
    //Test 中有num,answer,score三个属性
    List<Test> list = Arrays.asList(setValue("1", "a", 21.0), setValue("2", "b", 15.0), setValue("3", "d", 15.0), setValue("6", "c", 15.0));

    public static Test setValue(String tNum, String answer, double score) {
        Test ssa = new Test();
        ssa.setNum(tNum);
        ssa.setDaAn(answer);
        ssa.setScore(score);
        return ssa;
    }
    //原来的方法
    List<String> temp = new ArrayList<>();
    for(Test ssa : list){
        temp.add(ssa.getDaAn);
    }

    //lambda表达式
    List<String> temp = list.stream().map(d->d.getDaAn).collect(Collectors.toList());


5.将一个集合中的对象的值,组成另一个对象的集合
    //Test 中有Num,daAn,score三个属性
    //Test2中有answer,score

    List<Test> list = Arrays.asList(setValue("1", "a", 21.0), setValue("2", "b", 15.0), setValue("3", "d", 15.0), setValue("6", "c", 15.0));
    public static Test setValue(String tNum, String answer, double score) {
        Test ssa = new Test();
        ssa.setNum(tNum);
        ssa.setDaAn(answer);
        ssa.setScore(score);
        return ssa;
    }
    
    //原来的方法
    List<Test2> list2 = new arrayList<>();
    for(Test test : list){
        Test2 test2 = new Test2();
        test2.setAnswer(test.getAnswer());
        test2.setScore(test.getScore());

        list2.add(test2);
    }
    
    //lambda表达式
    List<Test2> result = list.stream().map(temps ->{
        Test2 test2 = new Test2();
        test2.setAnswer(test.getAnswer());
        test2.setScore(test.getScore());
        return test2;
    }).cellect(Collectors.toList());


6.处理list集合中的数据
    //list集合所有的字符串转成大写
    List<String> list = Arrays.asList("zhangsan","lisi","wangwu","zhaoliu");
    //原来的方式
    for(int i=0;i<list.size();i++){
        list.get(i).toUperCase();
    }

    //使用lambda表达式
    list.stream().map(t -> t.toUpperCase()).collect(Collectors.toList()).forEach(System.out::println);

7.处理List集合,并转化为其他集合
    List<String> list = Arrays.asList("zhangsan","lisi","wangwu","zhaoliu");
    
    //将list中的元素全部转化成大写,并保持List形态
    List<String> result = list.stream().map(x -> x.toUpperCase()).collect(Collectors.toList());
    
    //将list中的元素全部转化为大写,并转化为String类型,元素之间通过“,”分割
    String result = list.Stream().map(x -> x.toUpperCase()).collect(Collectors.joining(","));

    //将list中的元素全部转化为大写,并转化为Set<String>类型
    Set<String> result = list.Stream().map(x -> x.toUpperCase()).collect(Collector.toSet());

8.取出List<Integer>集合的“最值”,“平均值”等
    List<Integer> list = Arrays.asList(4,5,2,3,6,8,95,213,452,12,5,6,9,9);

    IntSummaryStatistics re = lists.stream().mapToInt(x->x).summaryStatistics();
    System.out.println("平均值:"+re.getAverage());
    System.out.println("最大值:"+re.getMax());
    System.out.println("最小值:"+re.getMin());
    System.out.println("求和:"+re.getSum());

9.List<String>转化为 String [] array
    
    List<String> list =Arrays.asList("zhangSan","liSi","wangWu","zhaoLiu");

    String [] arr = list.stream().toArray(String::new);
    Object [] arr = list.stream().toArray();
    String [] arr = list.stream().toArray(str -> new String[list.size()])


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值