java – 需要帮助存储二维数组中的特定值

所以我有一个二维数组,如下所示

    {1, 20}
    {1, 14}
    {2, 15}
    {2, 67}
    {3, 55}
    {3, 24} 
    {4, 95}
    {4, 23}

我需要做的是基本上找到第二列中对应每个数字的最高数字,因此对于1,最高数字是20,对于2,最高数字是67,等等…所以我试图使用while循环看起来像这样

int count = 0;
int count2 = 0;

int[][] array = {1, 20}
                {1, 14}
                {2, 15}
                {2, 67}
                {3, 55}
                {3, 24} 
                {4, 95}
                {4, 23}
int[] storeMax = new int[4]

while (array[0][count] < array[count].length)
            {
                if (array[count][1] > storeMax[count2])
                {
                    storeMax[count2] = degPerc[count][1];
                    count2++;
                }
                else
                {
                    count++;
                    count2++;
                }
            }

我已经有一段时间了,但似乎无法弄明白.如果有人能帮助我那将是非常棒的!

最佳答案 我认为一个解决方案与您的解决方案略有不同.

创建地图 地图.将键存储为第一列并开始将值作为第二列(如果键已存在,则检查值,如果map中的值小于当前值,则替换为当前值).你得到你的输出

public static void main(String[] args) {
    int[][] array = { { 1, 20 }, { 1, 14 }, { 2, 15 }, { 2, 67 },
            { 3, 55 }, { 3, 24 }, { 4, 95 }, { 4, 23 } };

    Map<Integer, Integer> map = new HashMap<Integer, Integer>();
    System.out.println(array.length);
    for(int i=0;i<array.length; i++)
    {
        if(map.get(array[i][0]) == null)
                map.put(array[i][0], array[i][1]);
        else
            if(map.get(array[i][0]) < array[i][1])
            {
                map.put(array[i][0], array[i][1]);
            }
    }
    System.out.println(map);
}
点赞