set的工作原理,Set 不重复实现原理

Java中的set是一个不包含重复元素的集合,确切地说,是不包含e1.equals(e2)的元素对。Set中允许添加null。Set不能保证集合里元素的顺序。

在往set中添加元素时,如果指定元素不存在,则添加成功。也就是说,如果set中不存在(e==null ? e1==null : e.queals(e1))的元素e1,则e1能添加到set中。

下面以set的一个实现类HashSet为例,简单介绍一下set不重复实现的原理:

import java.util.HashSet;

import java.util.Iterator;

import java.util.Set;

 

/**

* @version 1.0

* @author Oliver

* @since 1.0

*/

public class HashSetTest

{

    //自定义MyString类

    static class MyString{

        String value;

 

        public MyString(String value)

        {

            this.value = value;

        }

    }

    public static void main(String[] args)

    {

        //创建一个HashSet对象

        Set<Object> set = new HashSet<Object>();

        //创建连个String对象

        String s1 = new String("a");

        String s2 = new String("a");

        //创建连个MyString对象

        MyString s3 = new MyString("a");

        MyString s4 = new MyString("a");

        //添加元素

        set.add(s1);

        set.add(s2);

        set.add(s3);

        set.add(s4);

        //看看对象的equals

        System.out.println("s1.equals(s2):"+s1.equals(s2));

        System.out.println("s3.equals(s4):"+s3.equals(s4));

        //打印几个大小及里面的元素

        System.out.println("set size:"+set.size());

        for(Iterator<Object> it=set.iterator();it.hasNext();){

            System.out.println(it.next());

        }

    }

}



Tags:  set原理 vpn实现原理 百度文库实现原理 购物车实现原理 ajax实现原理 set的工作原理

延伸阅读

最新评论

发表评论