java - 删除 ArrayList 中的重复数组?

标签 java arraylist duplicates

有没有办法删除 ArrayList 中的重复数组?
我尝试将 ArrayList 转换为 HashSet,然后再转换回来以删除重复的数组。
但这是行不通的:

ArrayList<int[]> mylist = new ArrayList<int[]>(); 

mylist.add(new int[]{1,2});
mylist.add(new int[]{2,2}); // Duplicate
mylist.add(new int[]{2,2}); // Duplicate

之前:

{{1,2},{2,2},{2,2}}

之后:

{{1,2},{2,2}}

最佳答案

不同的数组对象即使内容相同,也有不同的 hashCode() 值。

顺便说一句,我想不出还有什么比将数组包装到一个类中并使用基于值的 hashCode 和 Arrays.equals 作为 equals 来散列所有包装的数组更好的了。

这将是 O(n),而不是在嵌套循环中搜索重复项 (O(n^2))。

关于java - 删除 ArrayList 中的重复数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24973394/

相关文章:

java - 在Android上解密 "SunJCE"AES加密数据

java - 通过其实例变量之一对对象的 ArrayList 进行排序

python - pandas 在某些特定条件下从数据帧(分组)中删除重复项

mysql - 查找MySQL中的重复记录

java - 尝试使用 Spring 以正确的顺序销毁 bean

java - 短信管理器不工作。我还在 list 中包含了许可

java - 在java中比较和删除数组列表中的2个连续元素

php - 如何防止注册重复的电子邮件地址?

java - 在windows app目录下本地安装jre

android - 如何将 HashMap 存储在 ArrayList 中然后存储到 String[]