检查arrayA是否包含arrayB的所有元素有哪些有效的解决方案?

时间:2017-02-26 13:44:15

标签: java c++

for (int i = 0; i < arrayA.length; i++) {

        for (int y = 0; y < arrayB.length; y++) {
            if (arrayA[i] == arrayB[y]) {
                cnt++;
            }
        }
    }

    if (cnt == arrayB.length) {
        // B is subset of A
    }

1 个答案:

答案 0 :(得分:1)

您可以将数组转换为lists并使用containsAll方法进行检查,例如:

List<String> list1 = Arrays.asList(a);
List<String> list2 = Arrays.asList(b);
list1.containsAll(list2);

Here containsAll方法的javadoc。

<强>更新

以下是int数组的工作原理:

int[] a = new int[10];
int[] b = new int[10];
List<Integer> list1 = Arrays.stream(a).boxed().collect(Collectors.toList());
List<Integer> list2 = Arrays.stream(b).boxed().collect(Collectors.toList());
list1.containsAll(list2);