您的位置:首页 > 编程语言 > Java开发

java比较接口Comparable,对象排序存在TreeSet中

2012-07-10 16:09 495 查看
package com.java.demo.Comparable;

import java.util.Iterator;

import java.util.TreeSet;

public class TestComparable {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

TreeSet<Student> tset = new TreeSet<Student>();

tset.add(new Student(1, "zhangsan1", "男"));

tset.add(new Student(4, "zhangsan4", "女"));

tset.add(new Student(3, "zhangsan3", "男"));

tset.add(new Student(2, "zhangsan2", "女"));

printTreeSet(tset);

}

private static void printTreeSet(TreeSet<Student> tree) {

Iterator<Student> iterator = tree.iterator();

while (iterator.hasNext()) {

Student student = iterator.next();

System.out.println(student.toString());

}

}

/**

* 定义一个student的对象类

*/

static class Student implements Comparable<Student> {

private int id;

private String name;

private String sex;

public Student(int id, String name, String sex) {

this.id = id;

this.name = name;

this.sex = sex;

}

/* 实现 Comparable 接口中的 compareTo 方法,

* 通常大于时返回一个正数,小于时返回一个负数,

* 等于时返回零,具体情况可以自行决定。

*********************************************************

* 这里我根据 id 号的大小进行了比较。由于 TreeSet

* 会根据 compareTo 的结果来排序,因此输出结果

* 应该是按照 id 号从小到大排序的。

* 如果要根据姓名进行排序,只需对这个方法进行相应的修改。

*/

@Override

public int compareTo(Student o) {

if (id > o.id)

return 1;

else if (id == o.id)

return 0;

else

return -1;

}

public String toString() {

return this.id + "," + this.name + ";";

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐