java8中的一些用法

1、筛选集合,将符合条件的结果,进行排序后返回成新的集合

//从数据库中读取数据

List<Alarmrule> alarmrules = alarmruleService.list();

//c代表被过滤的集合(也就是alarmrules中的元素
List<Alarmrule> rules = alarmrules.stream().filter(c -> c.getFactorid() == "12")

//Comparator.comparing代表将过滤后的数据按照sort排序,Collectors.toList()代表将结果收集为list类型后返回。

.sorted(Comparator.comparing(Alarmrule::getSort)).collect(Collectors.toList());


2、JSON数据转换成对应的实体类(前提是字段能够匹配):

实体类名 entity = JSONUtil.toBean(数据.toString(),实体类名.class);


3、lambda表达式分组功能,根据age进行分组:

Map<String, List> listMap = contentMap.stream().collect(Collectors.groupingBy(e -> e.get(“age”).toString()));

有对应实体类的话就可以这么写:Collectors.groupingBy(entity::getAge)

4、实体类复制,oldEntity是原来的,newEntity是复制后的实体类对象。(匹配不上的字段会自动忽略):


BeanUtils.copyProperties(oldEntity,newEntity);

5、排序

List<Map> list =  list .stream().sorted(Comparator.comparing((Map e)-> Double.valueOf(e.get("limitvalue").toString())).reversed()).collect(Collectors.toList());
ps:sorted为排序,reversed为倒序。

6、stream的几个方法:

stream是将数组转成流,可以理解为遍历数组,比如List<Map> list。list.stream().filter(e->e.get("")):这里的e就是list数组中的元素map
        filter:过滤流中的某些元素
        limit(n):获取n个元素
        skip(n):跳过n元素,配合limit(n)可实现分页
        distinct:通过流中元素的 hashCode() 和 equals() 去除重复元素
        map(e->e.get("name")):将List中的元素:每个map中的name单独取出组成新的List

7、list的一些方法

        Collections.min(list):取出list中最小元素
        list.contains("lisa"):判断list中是否包含lisa

8、java8去重

List<Map>:里面是map或者是实体类时,根据map或实体类的某个键进行去重,先根据这个键分组,再取出第一个元素重组一个list即可:
//将突发工单按照工单id进行分组
List<entity> workBurstOrders = new ArrayList<>;
Map<Long,List<entity>> workGroupBy = workBurstOrders.stream().collect(Collectors.groupingBy(entity::getName));
//将分组后的map的值取出第一个元素转为新的list集合
List<entity> newList = workGroupBy.values().stream().map(e->e.get(0)).collect(Collectors.toList());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值