documentation states集不能包含重复项
但是这段代码工作正常:
Set<String> vmv = new TreeSet<String>();
vmv.add("a");
vmv.add("a");
System.out.println(vmv.toString());
我刚刚添加了一份副本。有人可以解释一下。
答案 0 :(得分:5)
使用相同的值调用add()
两次不会再次添加它,检查返回的boolean
,您会看到第二次false
,或检查集合的大小,以验证它在第二次之后没有改变:
Set<String> vmv = new TreeSet<String>();
System.out.println(vmv.add("a")); // prints true
System.out.println(vmv.size()); // prints 1
System.out.println(vmv.add("a")); // prints false
System.out.println(vmv.size()); // prints 1
答案 1 :(得分:2)
从同一页面进一步向下:
add
方法将指定的元素添加到Set(如果它尚不存在)并返回一个布尔值,指示是否添加了元素。
......这正是它正在做的事情。当您打印最终集时,您应该只看到“复制”元素的一个副本。