JAVA技巧实战
1.集合获取交集
代码展示:
// list同一个key,修改某一个值
result.addAll(voList);
result.stream.collect(Collectors.Map(VO::getId, a->a,(o1,o2)->{
VO b = new VO();
b.setId(o1.getId());
b.setA(String.valueOf(Long.valueOf(o1.getA()) + Long.valueOf(o2.getA()));
return b;
})).values().stream().collect(Collectors.toList());
// list升序排序
result.stream().sorted(Comparator.comparing(VO.getId()).collect(Collectors.toList());
// 根据id分组,转换成map
Map<String, List<VO>> collect = voList.stream().collect(Collectors.groupingBy(VO::getId());
// 根据id 拼接指定的list
for(String id, collect.keySet()){
VO vo = new VO();
vo.setId(id);
voList.add(vo);
}
// 集合list1 和 list2 对比差集,然后设置某个字段
List<dto> reduce = list2.stream.filter(a-> !list1.stream().map(b->b.getId()+"&"+b.getNm())
.collect(Collectors.toList()).contains(a.getId()+"&"+a.getNm()))
.map(d->d.setMemark();return d;}).collect(Collectors.toList());
2.数组
// String json转对象
String str = wehgcResult.getData().toString();
TruckInfoResVO resVO = JSONObject.toJavaObject(JSONObject.parseObject(str), TruckInfoResVO.class);
// String数组 json转对象集合
Page<TruckPlateNoResVO> page = new Page<>();
Object data = wehgcResult.getData();
String str = wehgcResult.getData().toString();
JSONObject jsonObject = JSONObject.parseObject(str);
String total = jsonObject.getString("total");
String records = jsonObject.getString("records");
List<TruckPlateNoResVO> resVOS = JSONArray.parseArray(records.trim(), TruckPlateNoResVO.class);
page.setRecords(resVOS);
page.setTotal(Integer.valueOf(total));