【问题标题】:Searching Two Arrays搜索两个数组
【发布时间】:2015-12-01 08:16:18
【问题描述】:

我是 Java 新手,需要数组方面的帮助。

我现在有两个数组。

int [] array1 = {2,5,7};
int [] array2 = {3,5,9};

我必须找到两个数组之间的第一个匹配元素,显然是 5。显然,首先我们要查看 array1 中的元素,然后查找这些元素以查看它们是否也在 array2 中。我很确定我必须使用循环,只是不确定哪个以及如何编码。任何帮助,将不胜感激。谢谢。

【问题讨论】:

  • 你试过的代码在哪里?
  • 尝试使用 for-each 循环;) 编写一些代码,如果您有特定问题,请回到这里!
  • 我不完全确定如何在 int 类型的数组中搜索元素。
  • 谢谢帕克...我现在要尝试一个 for-each 循环。我会在几分钟后回复...只需要知道使用哪个循环作为起点:)
  • 好的,所以我的代码几乎是正确的。我有上面发布的两个数组。我只是不明白如何找到第一个匹配元素。我知道元素是 8。我使用 for each 循环。但是如何比较两个数组来搜索匹配的 int 值呢?我知道如何比较数组以查看它们是否完全匹配,而不仅仅是第一个元素。

标签: java arrays


【解决方案1】:

我想这对你有帮助

for(int index1=0;index1<array1.length();index1++)
 {
 for(int index2=0;index2<array2.length();index2++)
  {
   if(array1[index1]==array2[index2])
   {
    System.out.println(array1[index1]+" is present in both array.");
   }

  }
}

【讨论】:

    【解决方案2】:

    您可以尝试以下类似的方法

    如果你只是在数组中寻找共同的元素,在任何索引处:

        //Loop through array1
        for (int inArray1 : array1) {
            //For each element in array1, loop through array2
            for (int inArray2 : array2) {
                //If they are equal, we have found a common element
                if (inArray1 == inArray2) {
                    System.out.println("First common element: " + inArray1);
                    break; //We've found it, no need to keep going
                }
            }
        }
    

    如果您希望匹配的元素位于公共索引处:

        //In-case the arrays have a different length
        int commonLength = Math.min(array1.length, array2.length);
        //For each element in BOTH of the arrays
        for(int index = 0; index < commonLength; index++) {
            //If the corresponding elements are equal, we have found our common
            if(array1[index] == array2[index]) {
                System.out.println("First matching element: " + array1[index] + " at index " + index);
                break; //We've found it, no need to keep going
            }
        }
    

    【讨论】:

    • 我实际上发现了一个与我类似的问题,并得到了与您的代码基本完全相同的答案,只是变量不同。非常感谢您的帮助!
    猜你喜欢
    • 2017-08-08
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 2021-02-14
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2011-11-05
    相关资源
    最近更新 更多