英文:
Convert list of object to map of object
问题
将以下代码从对象列表转换为对象映射的 Java 流代码如下:
List<OrderData> orderList = getOrderList();
Map<String, OrderData> orders = orderList.stream()
.filter(order -> orderData == null || !order.getFiles().isEmpty())
.collect(Collectors.toMap(OrderData::getOrderID, Function.identity()));
这是你要求的代码翻译。如果需要更多帮助,请告诉我。
英文:
How do I convert the following code below from list of objects to map of objects using Java stream?
List<OrderData> orderList = getOrderList();
Map<String, OrderData> orders = new HashMap<>();
orderList.forEach(order -> {
OrderData orderData = orders.get(order.getOrderID());
if (orderData == null || !order.getFiles().isEmpty()){
orders.put(order.getOrderID(), order);
}
});
答案1
得分: 1
这应该可以解决问题:
Map<String, OrderData> collect = orderList.stream()
.filter(o -> !o.getFiles().isEmpty())
.collect(Collectors.toMap(OrderData::getOrderID,
Function.identity()));
英文:
This should do the trick:
Map<String, OrderData> collect = orderList.stream()
.filter(o -> !o.getFiles().isEmpty())
.collect(Collectors.toMap(OrderData::getOrderID,
Function.identity()));
答案2
得分: 0
以下是翻译好的部分:
根据 `@f1sh` 的代码添加了碰撞处理:
Map<String, OrderData> collect = orderList.stream()
.filter(o -> !ObjectUtils.isEmpty(o.getOrderID()) && !o.getFiles().isEmpty())
.collect(Collectors.toMap(OrderData::getOrderID, Function.identity(), (k1, k2) -> k1));
英文:
Collision processing is added based on @f1sh
's code:
Map<String, OrderData> collect = orderList.stream()
.filter(o -> !ObjectUtils.isEmpty(o.getOrderID()) && !o.getFiles().isEmpty())
.collect(Collectors.toMap(OrderData::getOrderID, Function.identity(), (k1, k2) -> k1));
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论