【发布时间】:2020-03-06 00:26:18
【问题描述】:
如何检查 ArrayList<int[]> 是否包含给定数组 [x, y]?我找到了the same question in c#,但找不到 java 的任何答案。
目前我正在使用myList.contains(myArray),但它总是评估为假,我假设与 C# 中的原因类似。 C#中的解决方案是使用LINQ,在java中是没有的。
是否有其他方法可以做到这一点,或者我必须编写自己的子程序来提取每个列表元素的值并手动比较它们?
编辑:我已经编写了自己的子程序来执行此操作(假设每个数组都有两个元素),但更优雅的解决方案将不胜感激
private boolean contains(List<int[]> list, int[] array) {
for (int[] listItem : list) {
if (listItem[0] == array[0] &&
listItem[1] == array[1]) {
return true;
}
}
return false;
【问题讨论】:
-
备注:由于泛型是不变的和可擦除的,而数组是协变的和保留的,混合它们会给你带来麻烦。