所以我有一个二维数组,如下所示
{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);
}