【发布时间】:2020-08-30 17:03:14
【问题描述】:
我有一个 ArrayList 和 Bottle 对象。每个 Bottle 对象都有一个 brand:String 和一个 price:double 字段。我正在尝试使用 Stream API 编写一个表达式,所以我最终不仅得到了一个独特瓶子的列表,而且还有一个价格最高的独特瓶子的列表 - 例如。如果ArrayList 包含三个同名的Bottle 对象,我希望价格最高的那个进入最终列表。
【问题讨论】:
-
还有什么问题?
-
最后的列表只有唯一的 Bottle 对象,但是来自三个名为“BottleA”的 Bottle 对象,每个都有相应的价格 10、20 和 30,我希望价格为 30 的瓶子结束在最终名单中。不过,我整理的表达式并不能保证 - 所以它可能是价格为 10 或 20 的瓶子进入最终列表。
-
添加一个比较器怎么样?
-
显然,您不想要“独特的瓶子”,而是“具有独特名称(或品牌)的瓶子”。显示的表达式甚至没有远程连接到此任务。那么,为什么您要尝试更改完全不相关的代码,而不是直接解决实际任务呢?
-
您的代码返回一个对象,而不是所有对象,从具有相同名称的瓶子中,即相等到
processedGameRef,与unique相反。
标签: java-8 functional-programming java-stream