gpt4 book ai didi

java - 按属性查找最小值,以列表形式返回

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:39:01 25 4
gpt4 key购买 nike

我有一个类似这样的类:

public class Product{
public Integer category;
public Integer price;

// getters and setters omitted
}

有了不同类别和价格的产品列表,我想返回一个包含每个类别最便宜产品的列表。我找到了一种方法,可以将其作为以类别为键的 map ,但我只想有一个列表。什么是简洁易读的方法?

这是我目前所拥有的 map :

Map<String, Product> cheapestProducts = products.stream()
.collect(
groupingBy(
Product::getCategory,
collectingAndThen(minBy(comparing(Product::getPrice)), p -> p.get())
)
);

最佳答案

您可以使用 toMap方法,然后调用 map.values() :

Collection<Product> cheapestProducts = products
.stream()
.collect(Collectors.toMap(t -> t.category, u -> u,
(a, b) -> a.price > b.price ? b : a))
.values();

如果你真的想要一个列表,另请参阅上面 Holger 的评论。

关于java - 按属性查找最小值,以列表形式返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36577416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com