set 怎么用iterator()方法来区分重复与否

在网上搜索到很多关于Set.iterator()来判断Set中是否有重复元素,但是究竟怎么判断却没有说.不知道哪位大侠能指导下小弟?

比如我建立了一个HashSet

Set set=new HashSet();
set.add("hello");
set.add("hello");

这样里面就有相同的字符串了,那么set
里面是怎么用iterator()方法判断的??
问:Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别
答:Set里的元素是不能重复的,那么用iterator()方法来区分重复与否_----这句话什么意思,是怎么用iterator()方法来区分重复的??

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
 
public class SetTest {
    //结果输出为ELEM
    static void AddToSet(){
        String str = "ELEM";
        String str1 = new String("ELEM");
        Set set = new HashSet();
        Set setCompare = new HashSet();
        set.add(str);
        set.add(str1);
        setCompare.add(str1);
        //Iterator是用来遍历容器中的元素的
        Iterator itera = set.iterator();
        Iterator iteraCompare = setCompare.iterator();
        while(itera.hasNext())
        {
            System.out.println((String)itera.next());
        }
        while(iteraCompare.hasNext())
        {
            System.out.println((String)iteraCompare.next());
        }
        if(set.equals(setCompare)){
            System.out.println("两个对象内容相同");
        }
        if(set == setCompare){
            System.out.println("两个对象相等");
        }
         
    }
    public static void main(String[] args){
        SetTest.AddToSet();
    }
 
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-23
HashSet进行存储的时候,对于相同的对象,不重复存储,你的两个"hello",是String对象,其equal是true,因此不会重复存储,你取到的就是不重复的,因此不需要你自己进行判断本回答被提问者采纳
第2个回答  2010-05-18
Set<类型> 类型是Java库的,则你只需要使用contains(Object )方法判断是否重复。如果是自定义类,如上所说,你需要重写hashCode 和equals方法,根据需要来决定是否重复。例如:
class Student{//这个是学生类
private String name;
private String age;
private int stuId;//本班的学号
private String sex;
private int className;//班级号码
public int hashCode(){
return 100*className+sutId; //重写成这个就能决定不是同一个人了
}

}
第3个回答  2010-05-18
set里面元素本来就不能重复

你这里要覆写String类的equals和hashcode方法才能防止重复
第4个回答  2010-05-18
其实是靠 hashcode 和equals 方法来控制的
详情参照下面链接 很详细的
http://hi.baidu.com/walkingz/blog/item/300ffc35463a37375bb5f5b1.html
相似回答