import java.util.HashSet;
/*
* HashSet,实现Set接口,无序、不允许重复
*
* 判断重复的依据:
* 当添加的元素的hashCode()方法返回值相同,并且equals()方法返回值为true时,就认为是同一个元素
*/
public class Test07
{
public static void main(String[] args)
{
// 创建一个HashSet集合
HashSet hs = new HashSet();
/* hs.add("唐伯虎");
hs.add(250.3);
hs.add("zhangsan");
hs.add(null);
hs.add(12);
hs.add(new String("lisi"));
hs.add(12);// 只会出现一次
hs.add("石榴姐");
hs.add(new String("itany"));
hs.add(new String("itany"));// 只会出现一次
*/ Student stu1 = new Student("tom", 20);
Student stu2 = new Student("tom", 21);
hs.add(stu1);
hs.add(stu2);// 只会出现stu1
System.out.println("stu1的hashCode():" + stu1.hashCode());
System.out.println("stu2的hashCode():" + stu2.hashCode());
System.out.println("stu1和stu2的值是否相等:" + stu1.equals(stu2));
System.out.println("集合中元素个数:" + hs.size());
System.out.println("集合中的元素:" + hs);
}
}
class Student
{
String name;
int age;
public Student()
{
}
public Student(String name, int age)
{
super();
this.name = name;
this.age = age;
}
// 重写hashCode方法
@Override
public int hashCode()
{
return name.hashCode();
}
// 重写equals方法
@Override
public boolean equals(Object obj)
{
Student stu = (Student) obj;
if (this.name.equals(stu.name)&&this.age==stu.age)
{
return true;
} else
{
return false;
}
}
}
import java.util.Set;
import java.util.TreeSet;
/*
* TreeSet,实现Set接口
* 不允许重复、元素顺序和插入顺序不保证一致
*
*
*/
public class Test08
{
public static void main(String[] args)
{
Set set = new TreeSet();
/*set.add(10);
set.add(2);
set.add(36);
set.add(14);
set.add(100);
set.add(84);
set.add(100);*/
set.add("tom");
set.add("alice");
set.add("jack");
System.out.println(set);
}
}
原文:http://blog.csdn.net/wangzi11322/article/details/44645047