gpt4 book ai didi

java - 添加第二列与第一列中的重复元素

转载 作者:太空宇宙 更新时间:2023-11-04 12:57:45 28 4
gpt4 key购买 nike

我有一个 6 行 2 列的二维数组,我想根据第一列中的值对第二列中的值求和。我不知道下一步该怎么做才能将我保存的值传输到排序数组中。

基本上我想改变这个:

      { 1, 5},
{ 1, 10 },
{ 2, 5},
{ 2, 15},
{ 2, 10},
{ 3, 6},

进入此:

      { 1, 15},
{ 2, 30},
{ 3, 6},

这是到目前为止我的代码,因此我们将不胜感激。

  int [][] sortedArray = new int[3][2];
int [][] array = {
{ 1, 5},
{ 1, 10 },
{ 2, 5},
{ 2, 15},
{ 2, 10},
{ 3, 6},
};
int column1 = 0;
int column2 = 0;

for(int i = 0; i < array.length; i++)
{
array[i][0] = column1;
while(array[i][0] == column1)
{
column2 += array[i][1];
}
}

最佳答案

如果您不知道第一列中唯一值的数量,您应该以通用方式执行此操作。

    // Build a map with
final Map<Integer, Integer> sortedMap = new LinkedHashMap<>();
for (int[] ints : array) {
if (sortedMap.containsKey(ints[0])) {
sortedMap.put(ints[0], sortedMap.get(ints[0]) + ints[1]);
} else {
sortedMap.put(ints[0], ints[1]);
}
}
int[][] sortedArray = new int[sortedMap.size()][2];
int i = 0;
// Convert the map to 2D array
for (Integer integer : sortedMap.keySet()) {
sortedArray[i][0] = integer;
sortedArray[i][1] = sortedMap.get(integer);
i++;
}

关于java - 添加第二列与第一列中的重复元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35215485/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com