如何在Java中存储一组唯一的整数数组

问题描述 投票:1回答:2

我正在尝试在Java中存储唯一整数数组的列表。我不能使用哈希集,因为.equals方法不会将具有相同值但引用不同的int []等同起来。

java arrays integer equals
2个回答
0
投票

一种选择是使用List<Integer>而不是int[]作为Set的元素,这将允许您使用任何Set实现。

如果必须使用数组,则可以通过将自定义TreeSet<int[]>传递给Comparator<int[]>构造函数,将它们存储在TreeSet中。这应该可行,因为TreeSet不使用equals()hashCode()来确定两个元素是否相同。


0
投票

我认为以下代码段将是您的解决方案。如果我正确的话

List<Integer> numberList = new ArrayList<Integer>();
int[] myInts = {1, 1, 2, 3, 3, 3, 3, 4};
for (int i : myInts) {
  if (!numberList.contains(i)) {
     numberList.add(i);
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.