常用的lambda表达式
2020-07-21 本文已影响0人
初心myp
1. String集合拼接字符串:
storeList.stream().collect(Collectors.joining(","));
2. 对象集合根据某个属性获取一个Set集合:
List<Org> orgList = new ArrayList<>();
Set<String> orgList = orgList.stream()
.map(e -> String.valueOf(e.getId()))
.collect(Collectors.toSet());
Set<String> orgList = orgList.stream()
.map(Org::getId()))
.collect(Collectors.toSet());
3. 对象集合根据某个属性过滤满足条件的数据:
List<StoreVO> storeList = new ArrayList<>();
List<StoreVO> storeVOList = storeList.stream()
.filter(e -> e.getDelFlg() != 1)
.collect(Collectors.toList());
4. 对象集合根据某个字段分组:
Map<String, List<User>> groupBySex = userList.stream()
.collect(Collectors.groupingBy(User::getSex));
5. 对象集合获取某个字段的最小值:
Date minEntryDate = userList.stream()
.map(User::getEntryDate)
.min(Date::compareTo)
.get();
6. 对象集合获取某个字段的最大值:
Date maxEntryDate = userList.stream()
.map(User::getEntryDate)
.max(Date::compareTo)
.get();
7. 对象集合求某个值最大的对象:
Comparator<LeasingBusinessContract> comparator =
Comparator.comparing(LeasingBusinessContract::getLeaseEndDate);
LeasingBusinessContract maxObject =
leasingBusinessContractList.stream().max(comparator).get();
8. 对象集合根据对象中的某个属性进行去重:
thirdOrgList.stream()
.collect(
Collectors.collectingAndThen(Collectors.toCollection(() ->
new TreeSet<>(Comparator.comparing(o -> o.getId()))),
ArrayList::new));
9. 已知两个集合,可以是两个不同对象的集合。根据两个对象中的某个属性进行求差集:
List<CmsModelItem> result = initList.stream()
.filter(init -> !yesList.stream()
.map(e -> e.getField())
.collect(Collectors.toList())
.contains(init.getField()))
.collect(Collectors.toList());
**1. 集合根据某个字段进行排序功能
unprocessedItemList.sort(new Comparator<MapgpsAlarmRecordResult>() {
@Override
public int compare(MapgpsAlarmRecordResult o1, MapgpsAlarmRecordResult o2) {
if (o1.getTypeWeight() == null || o2.getTypeWeight() == null) {
return 0;
} else {
return o1.getTypeWeight().compareTo(o2.getTypeWeight());
}
}
});