给定一系列价格(例如 341.95),我如何找到 50 个最便宜的价格?
诀窍是数组中的某些价格可以匹配,并且 50 个价格列表应该是唯一的价格。例如,如果其中有 6 个价格为 123.45,我只想要我的最终 50 个列表中的一个。不能有任何重复。
我认为最好的方法是获取该数组并将其吸入第二个数组,过滤掉任何匹配的数字,但这说起来容易做起来难。
最佳答案
使用 Java 8 流:
int[] lowestPrices = Arrays.stream(prices)
.sorted()
.distinct()
.limit(50)
.toArray();
请注意,即使您使用“123.45”作为示例,我也使用了 int[]
。使用 float 表示货币值是一个糟糕的主意,因此将 123.45 美元表示为 12345 美分。
关于java - 查找 50 个最便宜的不匹配价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44503400/