的documentation states集不能包含重複Set不能包含重複項。但它確實
但是這個代碼工作正常:
Set<String> vmv = new TreeSet<String>();
vmv.add("a");
vmv.add("a");
System.out.println(vmv.toString());
我只是增加了一個副本。有人可以解釋這一點。
的documentation states集不能包含重複Set不能包含重複項。但它確實
但是這個代碼工作正常:
Set<String> vmv = new TreeSet<String>();
vmv.add("a");
vmv.add("a");
System.out.println(vmv.toString());
我只是增加了一個副本。有人可以解釋這一點。
調用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
在同一頁面,進一步下跌:
的
add
方法添加指定的元素設置,如果它不存在,並返回一個布爾值,表示是否加入的元素。
......這正是它在做什麼。當你打印最後一組時,你應該只能看到一個「重複」元素的副本。
如果我正確理解你..重複沒有進入,它只是返回false? – user3240944
這完全正確。 –
請閱讀的Javadoc中,'add'方法做具體是什麼。 –
如果你的意思是,該集合中有第二個元素,以便vmv.toString()導致輸出「[a,a]」...情況並非如此。使用您的代碼,在添加兩次後,集合中只有一個「a」。 – ROT13