哪些有效的解决方案可以检查Arraya是否包含Arrayb的所有元素

What are some efficent solutions to check if arrayA contains all elements of arrayB?

本文关键字:包含 是否 Arrayb Arraya 元素 检查 有效 解决方案      更新时间:2023-10-16
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
    }

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

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

这是containsAll方法的Javadoc。

update

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);