取对象List中某一字段重新变成一个list
List<Long> idList = list.stream().map(list::getId).collect(Collectors.toList());
根据上步list中数据查询数据
SELECT
order_id as id
FROM
tb_grouproom_contract
WHERE
order_id IN
<foreach collection="idList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
AND STATUS IN (5,6,7)
GROUP BY order_id
having count(id) > 0
将对象数组转map
List<Amount> amountList;
Map<Long, Amount> amountMap = amountList.stream().collect(Collectors.toMap(Amount::getId, Function.identity()));
Map<Long, List<A>> groupByRoom = roomVOS.stream().collect(Collectors.groupingBy(A::getId));
过滤出id相同的listb
list = list.stream().filter(vo -> countList.contains(vo.getId()) && amountMap.containsKey(vo.getId())).collect(Collectors.toList());
排序:
List.stream().sorted(Comparator.comparing(GroupRoomInventoryVO::getBeginTime)).collect(Collectors.toList());
取对象List变成另一个对象list
List<AList> aList = BList.stream().map(
B -> {
A a = new A();
a.setDate(groupRoomInventoryVO.getBeginTime());
a.setRoomId(groupRoomInventoryVO.getResourceId());
a.setRoomName(groupRoomInventoryVO.getResourceName());
if (groupRoomInventoryVO.getAmountAvb() != 0) {
a.setCount(groupRoomInventoryVO.getAmountAvb());
a.setRoomflg(GroupRoomEnum.ROOM_COUNT_ALL);
} else if (groupRoomInventoryVO.getAmountAutoAAvb() != 0 && groupRoomInventoryVO.getAmountAutoBAvb() != 0) {
a.setCount(groupRoomInventoryVO.getAmountAutoAAvb());
a.setRoomflg(GroupRoomEnum.ROOM_COUNT_BOTH);
}
return a;
}).collect(Collectors.toList());
ArrayList<GroupRoomInventoryVO> roomIds = groupRoomListByDate.stream().collect(Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(GroupRoomInventoryVO::getResourceId))), ArrayList::new));