问:Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别
答:Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。
    equals()是判读两个Set是否相等
    equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值.这段话不是很懂,前辈们可否能有2段简单的程序分别解释一下Set的Iterator()方法和equals()方法呢?
到底是如何判断Set里面的元素是否重复呢?是需要我自己写程序控制Set里不能元素重复吗?

解决方案 »

  1.   

    ==比较的是对象吧  equals比较的是里面的值  可以这样去理解吧而且Set里确实是没有重复的  好像你看的是Set的实现代码吧?  那当然最直接的就是迭代判断有没有重复了 重复的就不加入Set中  
      

  2.   


    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();
    }}
      

  3.   

    总结一下:1. equals()  判断对象内容2. ==        判断对象引用3. Iterator  用来遍历容器中的元素
      

  4.   

    ==比较的是对象吧  equals比较的是对象的内容。
      

  5.   

    package collection.set.sort;import java.util.HashSet;
    import java.util.Iterator;
    import java.util.Set;public class Set_Iterator_Test { /**
     * 一个简单的例子测试Set.iterator()方法用来区分Set里的元素是是否重复的。
     * @param args
     */
    public static void main(String[] args) {
    Set set =new HashSet();
    set.add("1");
    set.add("1");
    set.add("2");
    Iterator it =set.iterator();
    while(it.hasNext()){
    System.out.println(it.next());
    }
    }
    }/*
     * 从结果可看到:
     * Set.iterator()方法对Set中的元素进行迭代,在迭代过程中判断其元素是否重复,重复的元素就不加到该Set中。
     */
      

  6.   

    ch_zhijian 你好,你的意思是只用执行了iterator方法后,对象才添加到set中吗,那么,add方法什么用呢
      

  7.   

    Hashset<Student> set = new Hashset<Student>();
    String str = "tr";
    set.add(str);
    上面的add()方法是不能添加成功的,请哪位大虾提示下如何将str添加到set中。谢谢