在网上搜索到很多关于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 关注
- 367 浏览
添加回答
举报
0/150
提交
取消
