HashSet public class HashSetTest { public static void main(String []args) { HashSet hs=new HashSet(); /* hs.add("one"); hs.add("two"); hs.add("three"); hs.add("one"); */ hs.add(new Student(1,"zhangsan")); hs.add(new Student(2,"lisi")); hs.add(new Student(1,"zhangsan")); hs.add(new Student(3,"wangwu")); Iterator it=hs.iterator(); while(it.hasNext()) { System.out.println(it.next()); } } } class Student { int num; String name; Student(int num,String name) { this.name=name; this.num=num; } public int HashCode() { return num*name.hashCode(); } public boolean equals(Object o) { Student s=(Student)o; return num==s.num && name.equals(s.name); } public String toString() { return "name : ="+name; } } TreeSet import java.util.*; public class TreeSetTest { //如果自定义类对象要加入TreeSet要实现Comparable接口 public static void main(String []args) { TreeSet ts=new TreeSet(new Student.StudentComparator()); /* ts.add("winsun"); ts.add("weixin"); ts.add("mybole"); */ ts.add(new Student(2,"lisi")); ts.add(new Student(1,"wangwu")); ts.add(new Student(3,"zhangsan")); ts.add(new Student(3,"mybole")); Iterator it=ts.iterator(); while(it.hasNext()) { System.out.println(it.next()); } } } class Student implements Comparable { int num; String name; static class StudentComparator implements Comparator { public int compare(Object o1,Object o2) { Student s1=(Student)o1; Student s2=(Student)o2; int result=s1.num>s2.num ? 1 : (s1.num==s2.num ? 0 : -1); if(result==0) { //String类实现了compareTo()方法. result=s1.name.compareTo(s2.name); } return result; } } public static void printElements(Collection c) { Iterator it=c.iterator(); while(it.hasNext()) { System.out.println(it.next()); } } Student(int num,String name) { this.name=name; this.num=num; } public int HashCode() { return num*name.hashCode(); } public boolean equals(Object o) { Student s=(Student)o; return num==s.num && name.equals(s.name); } public int compareTo(Object o) { Student s=(Student)o; return num>s.num?1:(num==s.num?0:-1); } public String toString() { return num+":"+name; } }