Java 如何创建在两个数组中返回匹配值的方法

Java 如何创建在两个数组中返回匹配值的方法,java,arrays,methods,Java,Arrays,Methods,我是编程新手,我正在努力自学一些基本的编码技能 我已开始试验阵列,并希望解决以下任务: 创建一个方法,返回两个数组中的所有匹配值,并在控制台中显示这些匹配值 到目前为止,我只创建了两个数组,list1和list2。我相信我需要使用for或while循环来查找每个数组中的匹配值,但我不确定如何执行此操作,以及接下来需要执行的操作 有人能给我一些建议吗 到目前为止,我写的是: package project1; public class Array { public static voi

我是编程新手,我正在努力自学一些基本的编码技能

我已开始试验阵列,并希望解决以下任务:

创建一个方法,返回两个数组中的所有匹配值,并在控制台中显示这些匹配值

到目前为止,我只创建了两个数组,list1和list2。我相信我需要使用for或while循环来查找每个数组中的匹配值,但我不确定如何执行此操作,以及接下来需要执行的操作

有人能给我一些建议吗

到目前为止,我写的是:

package project1;

public class Array {

    public static void main(String[] args) {
    int list1 [] = {1,2,55,8,7,9,60,4};
    int list2 [] = {3,12,1,71,4,6,1,10};
    }

}

你是对的,你必须创建一个循环来读取数组

        public static void main(String[] args) {
        int list1 [] = {1,2,55,8,7,9,60,4};
        int list2 [] = {3,12,1,71,4,6,1,10};

        for (int i=0;i<list1.length;i++){
        System.out.println(list[i]);
//If you want to print any specific position put the position of the array that you want to print (taking into account that arrays start in 0 position):
  System.out.println(list[0]);
        }
        for (int j=0;i<list2.length;j++){
        System.out.println(list[j]);
        }

    }

这两个简单的循环创建了一个名为i和j的整数,其初始值为0。在每个循环中,您将打印数组的每个位置,直到i和j达到数组list1.length和list2.length的长度。当循环打印第一个位置时,这些整数在一个i++和j++中递增其值,并打印下一个位置。

请阅读下面的代码并尝试理解它。请参阅java文档,或者如果您使用的是像eclipse这样的IDE,请将鼠标悬停在函数上以获取有关该功能的描述

public static void getMatchingElements(int[] array1, int[] array2) {

    for (int i = 0; i < array1.length; i++) {
        for (int j = 0; j < array2.length; j++) {

            if(array1[i] == array2[j]){
                System.out.println(array1[i]);
                break;
            }
        }
    }

}
上述算法非常简单。希望你能改进它。

试试这个

public static void main(String[] args) {
    int list1 [] = {1,2,55,8,7,9,60,4};
    int list2 [] = {3,12,1,71,4,6,1,10};

    for(int x : list1){
        if(Arrays.asList(list2).contains(x)){
            System.out.println( x + " : present in second array.");
        }
    }

 }

好的,我想我现在明白了。您希望打印出同时存在于列表1和列表2中的值。试试这个:

    public static void main(String[] args)
    {
        int list1 [] = {1,2,55,8,7,9,60,4};
        int list2 [] = {3,12,1,71,4,6,1,10};
        getMatchingValues(list1,list2);
    }
    public static void getMatchingValues(int[] list1, int[] list2)
    {
        for(int value1 : list1)
        {
            for(int value2 : list2)
            {
                if(value1==value2)
                {
                    System.out.println("Both lists contain "+value1);
                    break;
                }
            }
        }
    }

请分享您的努力?当我们说在提问之前显示一些努力时,声明数组并不完全是我们的意思。你必须努力解决这个问题。这就是教程的用途,不是这样的。请删除问题,谢谢。这确实很好,但我的目的是只查找和打印列表1和列表2中出现的数字。因此,在我的示例中,只应打印数字1。您提供的内容将打印两个阵列中的每个数字。然后,将i变量更改为您要打印的位置。答案编辑@bobe_bI需要注意的是,数字4也满足要求。非常感谢您对Oshyrath的帮助。这正是我想要做的:我不完全理解它,但我现在会花一些时间来试验它,以全面了解每个部分的功能。再次感谢!:好的,下面几行代码我很难理解…forint value1:list1基本上,它被称为增强的for循环。对于列表1中的每个值,循环传递一次。每次通过时,value1是列表中的下一个值。例如,第一次通过,值1将是1,然后是2,然后是55,然后是8,依此类推。太棒了!非常感谢您的解释和您的帮助Oshyrath!