Java 如何检查数组中以前是否出现过元素

Java 如何检查数组中以前是否出现过元素,java,arrays,Java,Arrays,例如,以下问题说明: 编写一个以两个整数数组为参数并打印其所有公共元素的方法 我的尝试: public static void commonElements(int[] A, int[] B) { for(int i = 0; i < A.length; i++) for(int j = 0; j < B.length; j++) if(A[i] == B[j]) System.out.print(A[i

例如,以下问题说明:

编写一个以两个整数数组为参数并打印其所有公共元素的方法

我的尝试:

public static void commonElements(int[] A, int[] B)
{
    for(int i = 0; i < A.length; i++)
        for(int j = 0; j < B.length; j++)
            if(A[i] == B[j])
                System.out.print(A[i] + " ");
}
publicstaticvoidcommonelements(int[]A,int[]B)
{
for(int i=0;i
现在的问题是,只有当每个数组中的元素只出现一次时,此代码才起作用。但例如,如果阵列A中有两个4s,而阵列B中有四个4s,则输出将是八个4s,这是错误的

那么,我如何检查数组中的某个元素是否已经出现,这样代码就不会考虑它。

publicstaticvoidcommonelements(int[]a,int[]B){
public static void commonElements(int[]A, int []B){

    int count = 0;
    for(int i = 0; i < A.length; i++)
        for(int j = 0; j < B.length; j++)
            if(A[i] == B[j]){
                count++;
                break;
            }       
    System.out.println(count);
}
整数计数=0; for(int i=0;i

试试这个。通过添加break,您可以强制它退出循环。

您可以将找到的内容存储在一个集合中。集合不允许重复

public static void commonElements(int[] a, int[] b)
{
    Set<Integer> duplicates = new LinkedHashSet<Integer> duplicates;
    for(int i = 0; i < a.length; i++){
        for(int j = 0; j < b.length; j++){
            if(a[i] == b[j]){
                duplicates.add(a[i]);
            }
        }
    }
    System.out.println(String.join(" ", duplicates));
}
publicstaticvoidcommonelements(int[]a,int[]b)
{
Set duplicates=新的LinkedHashSet duplicates;
for(int i=0;i

注意:按照惯例,Java中的变量名应该是小写的。

如果找到了
变量名
,那么
break
中可以找到您需要的代码。