在往set中添加元素时,如果指定元素不存在,则添加成功。也就是说,如果set中不存在(e==null ? e1==null : e.queals(e1))的元素e1,则e1能添加到set中。
下面以set的一个实现类HashSet为例,简单介绍一下set不重复实现的原理:
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());
}
}
}
最新评论