【问题标题】:Trying to find common elements between the rows in a single 2D array试图在单个二维数组中的行之间找到共同元素
【发布时间】:2016-04-30 01:19:46
【问题描述】:

我有一个二维字符串数组,我试图找出行之间是否有共同的元素以及该元素是什么。它应该查看 (0,0) 中的元素并将其与 (1,0)、(1,1)、(1,2) 等中的元素进行比较。我正在尝试使用嵌套的 for 循环,但我似乎无法正确使用它。谁能告诉我我的代码有什么问题以及我应该如何修复它?

for(int i = 0; i < times.length; i++ ){
        for(int j = 0; j < times[i].length; j++ ){
            if(i+1 < times.length)  
                if(times[i][j].equals(times[i+1][j])){
                    System.out.println(times[i][j + " = " +  times[i+1][j])
                }
        }
    }

【问题讨论】:

  • 您的代码检查 (0,0) 处的字符串是否等于 (1,0) 处的字符串,如果 (0,1) 处的字符串等于 ( 1,1), ....;如果 (1,0) 处的字符串等于 (2,0) 处的字符串,...这是你想要做的吗?
  • 请详细说明您的程序应该做什么以及如何做。
  • 不完全。我想检查第一行中的元素是否等于它下面的行,然后移动到下一行
  • 此代码应该找到所有行之间相同的所有元素。因此,如果第一行的第一个位置有 5,它将查看下一行的所有元素以查看该元素是否存在
  • 请编辑帖子以添加您正在寻找的功能的示例

标签: java search multidimensional-array


【解决方案1】:

我会尽量保持直观和易于理解。第一行的界限是 [0, times.length - 2]。这样,第二行的边界将是 [1, times.length - 1]。 对于第一行中的每个元素,我将检查第二行中的每个元素。下面的代码演示了这一点。

for(int row = 0 ; row < times.length - 1 ; row++) {
    for(int colFirst = 0 ; colFirst < times(row).length ; colFirst++) {
        for(int colSecond = 0 ; colSecond < times(row + 1).length ; colSecond++) {
            if(times[row][colFirst].equals(times[row+1][colSecond]))
                System.out.println(times[i][j + " = " +  times[i+1][j]);
        }
    }
}

【讨论】:

  • 谢谢你,这太棒了。我知道我需要另外三分之一的 for 循环,但我不知道如何让它工作。
  • @NicholasRay 很高兴能帮上忙 :)
【解决方案2】:

你想要这样的东西:

String[][] times = new String[][] { 
   { "aaa", "bbb", "ccc" }, 
   { "bbb", "dfdf", "ddd" }, 
   { "dfdfff", "ddd" } 
};

for (int i = 0; i < times.length - 1; i++)
{
    for (int j = 0; j < times[i].length; j++)
    {
        String currStringPrevRow = times[i][j];

        String [] nextRow = times[i + 1];

        for (String s : nextRow)
        {
            if (s.equals(currStringPrevRow))
            {
                System.out.println(s + " in row [" + i + "] is equal to " + s + " is row " + (i+1));
            }
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 2014-04-05
    • 2014-03-08
    • 1970-01-01
    相关资源
    最近更新 更多