java - 我需要使用第一个数组值来计算第二个数组中的大小,如果数据中出现重复值,我想要大小值的总和?

标签 java arrays indexing

我有两个数组,其中一个是,

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。我尝试使用 boolean duplics; 以及按顺序使用的各种不同循环找出我的问题,但到目前为止我收效甚微。

最佳答案

您可以简单地使用 Map 并用 data 数组中的键和 size 数组中的值填充它。像这样的事情:

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}

关于java - 我需要使用第一个数组值来计算第二个数组中的大小,如果数据中出现重复值,我想要大小值的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50984142/

相关文章:

java - 我应该只将 Lucene 用于搜索吗?

java - ArrayList addAll 不添加元素

java - Java 中的线程池究竟在做什么?

python - 通过结尾字符拆分句子

c++ - 标准::交换();在 else 语句中使用时不起作用

java - 如何获取某个字符串之间的名称?

java - 使用 JTextField 进行 JTable 过滤不起作用

java - 反复获取带有映射规范的 WhiteLabel 错误页面

c++ - 使用函数优化代码-数组中的最大元素

c - 重新分配一个字符串数组