Java中lambda表达式快捷键_Java中Lambda表达式的使用

packagecom.mao.com.lambda;import java.util.*;importjava.util.function.Predicate;importjava.util.stream.Collectors;importjava.util.stream.Stream;public classTest {public static voidmain(String[] args) {

List list = new ArrayList<>();

list.add(new User("1", "张三", "一年级", 95));

list.add(new User("2", "李四", "二年级", 96));

list.add(new User("3", "王五", "三年级", 98));

list.add(new User("4", "朱六", "三年级", 100));/**遍历*/list.forEach((o)->System.out.println("userId:"+o.getUserId()+", userName:"+o.getUserName()));/**遍历*/list.forEach(o->{

System.out.println("userId:"+o.getUserId()+", userName:"+o.getUserName());

});/**转hashSet*/Set set1 =list.stream().collect(Collectors.toSet());/**转hashSet*/Set set2 =list.stream().map(User::getUserName).collect(Collectors.toSet());/**转treeSet*/TreeSet set3 = list.stream().map(User::getUserName).collect(Collectors.toCollection(TreeSet::new));/**转map*/Map map1 =list.stream().collect(Collectors.toMap(User::getUserId, User::getUserName));/**转map*/Map map2 = list.stream().collect(Collectors.toMap(User::getUserId, User::getUserName, (k1, k2)->k1));/**分组*/Map> map3 =list.stream().collect(Collectors.groupingBy(User::getClassName));/**分组count*/Map map4 =list.stream().collect(Collectors.groupingBy(User::getClassName, Collectors.counting()));/**分组求和*/Map map5 =list.stream().collect(Collectors.groupingBy(User::getClassName, Collectors.summingInt(User::getScore)));/**过滤条件*/List temp1 = list.stream().filter(o->"1".equals(o.getUserId())).collect(Collectors.toList());/**多个过滤条件*/Predicate scoFilter = (o) -> (o.getScore() > 25);

Predicate clsFilter = (o) -> ("三年级".equals(o.getClassName()));

List temp2 =list.stream().filter(scoFilter).filter(clsFilter).collect(Collectors.toList());/**取前多少个*/List temp3 = list.stream().limit(2).collect(Collectors.toList());/**升序排序*/List temp4 = list.stream().sorted((u1, u2)->(u1.getScore()-u2.getScore())).collect(Collectors.toList());/**降序排序*/List temp5 = list.stream().sorted((u1, u2)->(u2.getScore()-u1.getScore())).collect(Collectors.toList());/**升序排序*/User user1= list.stream().max((u1, u2)->(u1.getScore()-u2.getScore())).get();/**降序排序*/User user2= list.stream().min((u1, u2)->(u1.getScore()-u2.getScore())).get();/**求和*/

int sum = list.parallelStream().mapToInt(p ->p.getScore()).sum();/**汇总数据*/IntSummaryStatistics stats= list.stream().mapToInt((x) ->x.getScore()).summaryStatistics();

System.out.println("最大的数字 : " +stats.getMax());

System.out.println("最小的数字 : " +stats.getMin());

System.out.println("所有数字的总和 : " +stats.getSum());

System.out.println("所有数字的平均值: " +stats.getAverage());

}public static Set getIntKeys(int sta, intsize){return Stream.iterate(sta, item -> item+1).limit(size).collect(Collectors.toSet());

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值