嗨在我的代码中,我有以下数组: -
String [] Category = {Rental,Gifts,Gifts};
float [] Amount = {14.76,15.0,20.0};
我的问题是我想从第一个数组中找到相同的元素,因为有“Gifts”。并根据转换第二个。 因此输出将为: -
类别= {Rental,Gifts};
金额= {14.76,35.0};
有人会告诉我如何在java中实现这个目标吗?
答案 0 :(得分:0)
你应该在这里使用Map
:类别值应该映射到Amount值(我会根据Java编码样式将它们命名为小写):
Map<String, Float> costs = new HashMap<>();
for (int i = 0; i < category.length; ++i) {
Float initial = costs.get(category[i]);
if (initial == null)
initial = 0f;
costs.put(category[i], initial + amount[i]);
}
完成这些操作后,costs
地图会包含(Rental -> 14.76, Gifts -> 35.0)
要恢复数组(不确定,为什么它有用),你应该遍历Map
的项目并将它们写入数组:
category = new String[costs.size()];
amount = new Float[costs.size()];
int i = 0;
for (Map.Entry<String, Float> entry: costs.entrySet()) {
category[i] = entry.getKey();
amount[i] = entry.getValue();
++i;
}