gpt4 book ai didi

java - 检查基元数组是否包含另一个数组中的所有基元的最佳方法

转载 作者:搜寻专家 更新时间:2023-11-01 03:32:23 24 4
gpt4 key购买 nike

我正在寻找最好的方法来检查一个基元数组是否包含 Java 中另一个数组中的所有基元。例如:

int[] a = new int[]{1,2};
int[] b = new int[]{1,2,3,4,5};
int[] c = new int[]{2,4,6};

containsAll(b, a); //true
containsAll(a, b); //false
containsAll(c, b); //false

其中 containsAll 是一个检查第一个参数内是否有第二个参数的函数!我不想将我的 int 数组转换为 Integer 数组以便使用以下方法:

Arrays.asList(a).containsAll(Arrays.asList(b))

因为我觉得如果数组很大的话,会很浪费性能!!!但也许我错了,最好的解决方案就是那个……你有什么想法吗?

最佳答案

containsAll() Java 集合框架中的方法有效地执行了两个嵌套循环,因此您将浪费性能转换为 ArrayList<Integer>Integer[]Arrays.asList()并使用 containsAll() .

int[] 上做两个嵌套循环你自己的阵列肯定会打败它。

如果您有额外的信息(例如,排序的数组、重复使用相同的数组、数组的典型大小),可能会出现性能更高的算法。

关于java - 检查基元数组是否包含另一个数组中的所有基元的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46547776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com