本帖最后由 蒋淑静 于 2013-12-8 22:07 编辑
- import java.util.*;
- class TreeSetDemo
- {
- public static void main(String[] args)
- {
- //创建集合对象
- TreeSet ts=new TreeSet();
- //将元素存入集合
- ts.add(new Student("lisi02",22));
- ts.add(new Student("lisi007",20));
- ts.add(new Student("lisi09",19));
- ts.add(new Student("lisi08",19));
-
- Iterator it=ts.iterator();
- //遍历集合中的元素,打印对象的属性
- while(it.hasNext()){
- Student stu=(Student)it.next();
- System.out.println(stu.getName()+"::"+stu.getAge());
- }
- }
- }
- //自定义类要实现Comparable接口,使其具备比较性
- class Student implements Comparable
- {
- private String name;
- private int age;
- Student(String name,int age){
- this.name=name;
- this.age=age;
- }
- //覆盖compareTo方法,此方法在被自动调用
- public int compareTo(Object obj){
- if(!(obj instanceof Student)){
- throw new RuntimeException("不是学生对象");
- }
- Student s=(Student)obj;//强转
- System.out.println(this.name+"..compare.."+s.name);
- if(this.age>s.age){
- return 1;
- }
- if(this.age==s.age){
- //当年龄相同时,比较姓名,姓名是字符串,而String类中有比较方法compareTo
- return 0;//this.name.compareTo(s.name);
- }
- return -1;
- }
- public String getName(){
- return name;
- }
- public int getAge(){
- return age;
- }
- }
复制代码
这程序先比较的是lisi02与lisi02吧,为什么老师运行代码的结果不是先跟自身比较
|
|