将自定义对象作为元素存到TreeSet集合中

来源:互联网 发布:windows qt4.8.0下载 编辑:程序博客网 时间:2024/05/17 04:19
/* * 程序头部注释开始   * 程序的版权和版本声明部分   * Copyright (c) 2011, 烟台大学计算机学院学生   * All rights reserved.   * 文件名称:将自定义对象作为元素存到TreeSet集合中                           * 作    者:薛广晨                               * 完成日期:2012  年 10 月  17  日   * 版 本号:x1.0               * 对任务及求解方法的描述部分   * 输入描述:  * 问题描述: * 程序输出:   * 程序头部的注释结束 */import java.util.*;class TreeSetTest {public static void main(String[] args) {TreeSet ts = new TreeSet();ts.add(new Person("lisi04",22));ts.add(new Person("lisi02",21));ts.add(new Person("lisi03",23));ts.add(new Person("lisi02",21));ts.add(new Person("lisi01",20));//ts.add(new Person("lisi04",22));for(Iterator it = ts.iterator(); it.hasNext(); ){Person p = (Person)it.next();System.out.println("name:" + p.getName() + " :: age:" + p.getAge());}}}class Person implements Comparable //该接口强制让人具备比较性{private String name;private int age;public Person(String name, int age){this.name = name;this.age = age;}public String getName(){return this.name;}public int getAge(){return this.age;}public void setName(String name){this.name = name;}public void setName(int age){this.age = age;}public int compareTo(Object obj){if(!(obj instanceof Person)){throw new RuntimeException("不是人对象");}Person p = (Person)obj;System.out.println(this.name+"....compareto....."+p.name);if(this.age > p.age)return 1;if(this.age == p.age){return this.name.compareTo(p.name);}return -1;}}