在網上搜索到很多關于Set.iterator()來判斷Set中是否有重復元素,但是究竟怎么判斷卻沒有說.不知道哪位大俠能指導下小弟?比如我建立了一個HashSetSet set=new HashSet();set.add("hello");set.add("hello");這樣里面就有相同的字符串了,請問怎么判斷啊?是這樣的,我昨天去面試,考官問我如何判斷Set中有沒有重復元素,我想不出來,后來面試完了,考官告訴我使用iterator()可以判斷.我不是很明白,我獲得這個iterator接口后應該怎樣處理才能得到Set是不是有重復元素.大俠們能給我舉個例子么?(另外能說下什么叫相同的元素么?)謝謝啦***************************************sankun1013 : 我就是你這么想的,獲得 iterator 后 ,然后遍歷,可是我怎么知道是不是有重復的元素呢? 假如有重復的話,用next()是看不出來的除非你去數完所有的元素然后在和size()比較看看是不是大了,但是那樣很慢的哦,有什么好辦法啊?能給出點例子么?謝謝啦~tanzhimei393: 你回答中只是用 iterator 來遍歷,然而沒有用來判斷重復元素.我希望你能給出例子來,謝謝
2 回答

阿波羅的戰車
TA貢獻1862條經驗 獲得超6個贊
set里的對象是不能重復的!
你上面的方法實際上只是添加進去了一個字符串
也就是說你第二個set.add("hello");
是不會向set中添加元素的,所以不用檢查了
添加是set本身已經做了檢查的
Set set=new HashSet();
set.add("hello");
set.add("hello");
System.out.print(set.size());
結果是1 不是2
-----------------------
iterator是用來遍例的,考官說的,我只能理解成是遍例時判斷了,
對于你說的相同的元素.
set的判斷方法是 如果 a.equals(b) == true 或a,b都是null那a b 就是相同的元素了

紅顏莎娜
TA貢獻1842條經驗 獲得超13個贊
冒泡排序
for(i=0;i<set.size();i++){
for(j=i+1;j<set.size();j++){
if(set.get(i).equals(set.get(j))){
//在這里面就可以判斷了
j--;
}
}
}
- 2 回答
- 0 關注
- 318 瀏覽
添加回答
舉報
0/150
提交
取消