首页 > 解决方案 > 我需要使用第一个数组值来计算第二个数组中的大小,如果数据中出现重复值,我想要大小值的总和?

问题描述

我有两个数组一个是,

data[10] = {10,10,30,30,90,60,71,91,90,91};

另一个是

size[10] = {1000,20000,30000,40000,50000,60000,7100,8000,9000,9100};

我想要做的是能够通过上面的数据数组进行索引,并从大小数组中挑选出大小。但是对于数据数组中的重复值,我希望聚合大小,例如,值 10 的大小应该是 21000。我尝试使用 aboolean duplicates;和各种不同的循环来找出我的问题,但到目前为止我收效甚微。

标签: javaarraysindexing

解决方案


您可以简单地使用 a并用数组中的键和数组中的值Map填充它。像这样的东西:datasize

int[] data = { 10, 10, 30, 30, 90, 60, 71, 91, 90, 91 };
int[] size = { 1000, 20000, 30000, 40000, 50000, 60000, 7100, 8000, 9000, 9100 };

Map<Integer, Integer> map = new HashMap<>();

for (int i = 0; i < data.length; ++i)
{
    map.put(data[i], map.getOrDefault(data[i], 0) + size[i]);
}

System.out.println(map);

这打印

{71=7100, 10=21000, 90=59000, 91=17100, 60=60000, 30=70000}

推荐阅读