【发布时间】:2019-07-29 00:24:46
【问题描述】:
我有一个整数列表,我从中计算重复次数并使用地图将其打印出来。现在Items 列表中的每个整数都必须有一个特定的值才能分配给它们。
我的输出是:
2 x 3
8 x 1
最终我想要实现的是:
2 x 3 $5.50
8 x 1 $12.50
Total = $29
这意味着整数 2 和 8 各有一个值,分别为 $5.50 和 $12.50。
在 Java 中为该列表中的整数赋值的最佳方法是什么?
如何处理计算?
该程序接受烘焙食品的订单 - 总数量以及作为输入的代码。例如 14 个松饼。每个项目都有一组可用的包裹(比如 2、5、8),每个都有它的成本。我使用硬币找零算法分解了可用包装中的 14 个松饼。
例如输入 = 14 个松饼
预期输出:
14 块松饼 $54.8
1 x 8 美元 24.95 美元
3 x 2 $9.95
我已经使用硬币找零算法完成了包装分解,现在我正在寻找设置 OO 设计以实现输出的最佳方法。我非常感谢您对此提出任何建议。
这是我从列表中获取重复项的代码:
public static void packagesprint() {
List<Integer> items = Arrays.asList(8, 2, 2, 2);
Map<Integer, Long> result = items.stream()
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
for (Map.Entry<Integer,Long> entry : result.entrySet())
System.out.println(entry.getKey() + " x "+
+ entry.getValue());
}
输出:
2x3
8x1
【问题讨论】:
-
实际上,在任何逻辑情况下,整数 2 的值为 2。我认为更好的方法是创建一个 Id = 2 且值为 5.50 美元的复合对象
-
为什么是
2x3(5.50) + 8x1(12.50) = 28?5.5*3 + 12.5 = 29,不是吗? -
@Alessandro:我的错。编辑错误
-
哪里存储关联
2=5.50$、8=12.50$等...? -
@Alessandro:我还没有存储在任何地方。我的问题的一部分基本上是获得有关如何处理的最佳建议。到目前为止,我已经使用硬币找零算法将一个值分解为它的面额。现在,这些面额中的每一个都需要分配一个值。您对此有何建议?
标签: java list oop arraylist collections