java基础-jdk1.8-lambda表达式-stream-创新互联
一、List<对象>-stream
当前题目:java基础-jdk1.8-lambda表达式-stream-创新互联
分享路径:http://scjbc.cn/article/dooocg.html
Listlist = new ArrayList<>();
基础的一些使用//遍历
list.forEach(x->System.out.println(x.getId()+"-"+x.getName()));
//删除符合条件的元素
list.removeIf(e ->Objects.isNull(e));
1、排序:一个字段排:
创新互联是专业的密山网站建设公司,密山接单;提供成都网站建设、成都网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行密山网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!//list自己本身的顺序发生了改变
//【升序】
list.sort(Comparator.comparing(User::getId));
//【降序】
list.sort(Comparator.comparing(User::getId).reversed());
//list自己本身的顺序不发生改变
list.stream().sorted(
Comparator.comparing(User::getId, Comparator.naturalOrder()).reversed())
.forEach(System.out::println);
两个字段排序:
//bya为第一个排序字段,升序 这个id相同时走第二个排序
Comparatorid= Comparator.comparing(User::getId);
//bya为第二个排序字段,降序.reversed()
Comparatorage= Comparator.comparing(User::getAge).reversed();
Collections.sort(list,id.thenComparing(age));
//自然比较器
//Comparator.naturalOrder()
//Comparator.nullsLast() null排在最后面
//Comparator.nullsFirst() null排在最前面
list.sort(
Comparator.comparing(User::getAge,
Comparator.nullsLast(Integer::compareTo))
.thenComparing(User::getUserName,
Comparator.nullsFirst(String::compareTo))
2、分组:一个字段分组:
Map>userGroupList=
list.stream().collect(Collectors.groupingBy(User::getUserName));
两个字段分组-一起:
Map>voMap =
list.stream().collect(Collectors.groupingBy(
a ->com.pcitc.kpi.utilis.util.StringUtils.format("{0}{1}",
a.getOrgCode(), a.getUserName())));
两个字段分组-先后:
//先按年龄分组、再按性别分组
Map>>>userMap =
list.collect(Collectors.groupingBy(
UserD::getAge, Collectors.groupingBy(
User::getSex, Collectors.groupingBy((userDTO) ->{
if (userDTO.getSex().equals("男")) {
return 1;
} else {
return 0;
}
}))));
3、计算//求和
list.stream().map(User::getMoney).reduce(BigDecimal.ZERO,BigDecimal::add);
4、去重
一个字段去重:
// 根据name去重
list.stream().collect(
Collectors.collectingAndThen(
Collectors.toCollection(() ->new TreeSet<>(Comparator.comparing(User::getName))), ArrayList::new));
System.out.println("name去重后:"+collect.toString());
两个字段去重:
list.stream().collect(
collectingAndThen(toCollection(() ->’
new TreeSet<>(Comparator.comparing(o ->o.getName() + ";"
+ o.getClassName() + ";"
+ o.getSex()))), ArrayList::new));
System.out.println("多条件去重后:"+collect1.toString());
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
当前题目:java基础-jdk1.8-lambda表达式-stream-创新互联
分享路径:http://scjbc.cn/article/dooocg.html