有没有更好的方法来编写这种方法?

时间:2014-01-18 18:23:01

标签: java methods

我想要一个带有两个数组的布尔方法,当第一个数组中的所有数字都存在于第二个数组中时,返回 true 。如果至少有一个数字不匹配,则返回 false

这是我的代码,但有些东西已经关闭。

public static boolean noMoreRolls(int[] paramArrayOfInt1, int[] paramArrayOfInt2) {
    boolean test[] = new boolean[paramArrayOfInt1.length];
    int total = 0;      
    boolean end = false;

    for (int i = 0; i < paramArrayOfInt1.length; i++) {
        for (int j = 0; j < paramArrayOfInt2.length; j++) {
            if (paramArrayOfInt1[i] == paramArrayOfInt2[j])
                test[i] = true;
        }
        if (test[i] == true)
            total++;
    }
    if (total == test.length) {
        end = true;
    }
    return end;
}

提前致谢。

编辑:抱歉误导和错误的方式把事情搞砸了。 2个阵列的长度不同。 理解我的代码的一个例子:数组1:[6,6,1,2,3,] /数组2:[2,3],它应该返回 false 。 数组1:[2] /数组2:[5,5,4,4,2],它应该返回 true

1 个答案:

答案 0 :(得分:2)

使用Java.util.Arrays

int[] paramArrayOfInt1={1,2};
int[] paramArrayOfInt2={1,3};
if(paramArrayOfInt1.length==paramArrayOfInt2.length) {
    if(!Arrays.equals(paramArrayOfInt1, paramArrayOfInt2)) {
        System.out.println("False");
    } else{
        System.out.println("True");
    }
    } else {
        System.out.println("False");
    }