从list集合中抽取getId字段为新的集合
List<String> plateNoIds = dtoList.stream().map(TracePointVehicleLogDTO::getPlateNo).filter(Objects::nonNull).distinct().collect(Collectors.toList());
从list集合按getId字段进行分组
List<Obj> list= service.queryList();
Map<Integer, List<Obj>> collect = list.stream().collect(Collectors.groupingBy(Obj::getId));
从list集合中使用java1.8 去重
List<User> setList = eachUser.stream()
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(User::getDay))), ArrayList::new));
从list集合中使用Java1.8按getId字段分组
list<Object> list = servcie.list();
Map<String, VehicleTrace> vehicleTraceMap = list .stream().collect(Collectors.toMap(VehicleTrace::getId, Function.identity(), (key1, key2) -> key1));
从list集合中使用Java1.8实现处理数据,集合合并
//处理数据,集合合并
//list1,list2为搜索出的两个集合
resultList = list1.stream().map(m -> {
list2.stream().filter(m2-> Objects.equals(m.getTypeId(),m2.getTypeId())).forEach(m2-> {
m.setNum(m2.getNum());
m.setScores(m2.getScores());
});
return m;
}).collect(Collectors.toList());
从list集合中使用Java1.8循环匹配合并list,根据共同字段合并集合
public static void main(String[] args) {
List<MemberInformationDomain> memberInformationDomainList = Lists.newArrayList();
//会员卡信息数据
List<MemberInfoNumDomain> memberInfoNumDomainList = Lists.newArrayList();
MemberInformationDomain informationDomain = new MemberInformationDomain();
informationDomain.setMemberId(1L);
informationDomain.setNickname("满");
MemberInformationDomain informationDomain1 = new MemberInformationDomain();
informationDomain1.setMemberId(2L);
informationDomain1.setNickname("满");
memberInformationDomainList.add(informationDomain);
memberInformationDomainList.add(informationDomain1);
MemberInfoNumDomain numDomain = new MemberInfoNumDomain();
numDomain.setMemberId(1L);
numDomain.setAccountMergeNum(2);
numDomain.setEntityCardNum(2);
numDomain.setHoldCardNum(4);
numDomain.setVirtualCardNum(6);
numDomain.setJointlyCardNum(1);
memberInfoNumDomainList.add(numDomain);
memberInformationDomainList.stream().forEach(infoList -> {
memberInfoNumDomainList.stream().forEach(numList -> {
if (infoList.getMemberId().equals(numList.getMemberId())) {
infoList.setAccountMergeNum(numList.getAccountMergeNum());
infoList.setHoldCardNum(numList.getHoldCardNum());
infoList.setEntityCardNum(numList.getEntityCardNum());
infoList.setJointlyCardNum(numList.getJointlyCardNum());
infoList.setVirtualCardNum(numList.getVirtualCardNum());
}
});
});
System.out.println("得到的集合对象为:" + memberInformationDomainList);
}
从list中取出一个指定字段 .joining拼接字符
//joining的用法,中间用逗号分割,前面加个start,后面加上end
String newTitle = favoriteGroupList.stream().map(FavoriteGroup::getTitle).collect(
Collectors.joining(",", "start", "end")).toString();
//拼接"-"字符
userOrgInfoList.stream().map(OrgsDTO::getName).collect(Collectors.joining("-"))
从list中计算出现次数,计数
Map<String, Long> traceCountMap = dtoList.stream().collect(Collectors.groupingBy(PersonArchiveDTO::getPersonIdNumber, Collectors.counting()));