Java 我不希望将相等的向量加在一起(或在没有向量的情况下列出)
我不希望将相等的向量加在一起(或者在没有向量的情况下列出)。当我在一个集合中添加两个相等的数字时,只添加一个,但当我添加两个相等的向量时,两个向量相加。有人知道怎么解决吗?我的代码:Java 我不希望将相等的向量加在一起(或在没有向量的情况下列出),java,list,set,Java,List,Set,我不希望将相等的向量加在一起(或者在没有向量的情况下列出)。当我在一个集合中添加两个相等的数字时,只添加一个,但当我添加两个相等的向量时,两个向量相加。有人知道怎么解决吗?我的代码: int[] a = new int[] {0,1,2,3,4,5,6}; int[] b = new int[] {0,1,2,3,4,5,6}; Set setExample = new HashSet(); setExample.add(a); setExampl
int[] a = new int[] {0,1,2,3,4,5,6};
int[] b = new int[] {0,1,2,3,4,5,6};
Set setExample = new HashSet();
setExample.add(a);
setExample.add(b);
集合“setExample”具有a和b。数组不使用值相等,因此集合不会将两个相似的数组视为重复。你可以用列表代替。
List
的标准实现覆盖了equals
和hashCode
,因此具有相同内容的两个列表被视为相等
List<Integer> a = Arrays.asList(1,2,3);
List<Integer> b = Arrays.asList(1,2,3);
Set<List<Integer>> set = new HashSet<>();
set.add(a);
set.add(b);
// set will only contain one list
List a=Arrays.asList(1,2,3);
listb=Arrays.asList(1,2,3);
Set=newhashset();
增加(a);
增加(b);
//集合将只包含一个列表
数组不使用值相等。你可以用List
s代替。那不是向量。这是一个数组。不要使用数组。使用列表(或包含值并正确重写equals()和hashCode()的任何其他类)。数组只能等于它们自己。它们不会覆盖equals()和hashCode()。@khelwood但在列表中可以重复元素,对吗?是的,就像在数组中一样。我的意思是使用列表而不是数组。