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

标签 java arrays sum

我有一个 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/

相关文章:

java - 如何获取在 Java 中 Cucumber 测试失败时抛出的异常?

java - 在选择查询 jooq 中使用 java 方法

python - 如何在Python中将16位无符号整数拆分为字节数组?

使用多维数组的 PHP 内容旋转器

mysql - 两个表中两列的总和

java - 掷骰子游戏问题

MySQL:提取上周和前一周的总计

java - 如何在java中对原始数据进行排序

java - 如何从视频(mov)中获取帧样本(jpeg)

c - 将 MS Word 中的大数据表添加到数组中?