您的位置:首页 > 其它

TreeSet实现集合中对象排序

2014-05-05 22:16 393 查看
package com.wzs;

import java.util.*;

public class UpdateStu implements Comparable<Object> {
private String name;
private long id;

public UpdateStu(String name, long id) {
this.id = id;
this.name = name;
}

@Override
public int compareTo(Object o) {
UpdateStu upstu = (UpdateStu) o;
// int result = id > upstu.id ? 1 : (id == upstu.id ? 0 : -1);
int result;
if (id > upstu.id) {
result = 1;
} else if (id == upstu.id) {
result = 0;
} else {
result = -1;
}
return result;
}

public static void main(String[] args) {
UpdateStu stu1 = new UpdateStu("李同学", 01011);
UpdateStu stu2 = new UpdateStu("陈同学", 01021);
UpdateStu stu3 = new UpdateStu("王同学", 01051);
UpdateStu stu4 = new UpdateStu("马同学", 01012);

TreeSet<UpdateStu> tree = new TreeSet<UpdateStu>();
tree.add(stu1);
tree.add(stu2);
tree.add(stu3);
tree.add(stu4);

Iterator<UpdateStu> it = tree.iterator();
System.out.println("Set集合中的所有元素:");
while (it.hasNext()) {
UpdateStu stu = (UpdateStu) it.next();
System.out.println(stu.getId() + " " + stu.getName());
}

it = tree.headSet(stu2).iterator();
System.out.println("截取前面部分的集合:");
while (it.hasNext()) {
UpdateStu stu = (UpdateStu) it.next();
System.out.println(stu.getId() + " " + stu.getName());
}

it = tree.subSet(stu2, stu3).iterator();
System.out.println("截取中间部分的集合");
while (it.hasNext()) {
UpdateStu stu = (UpdateStu) it.next();
System.out.println(stu.getId() + " " + stu.getName());
}
}

// -- get&&set --
public long getId() {
return id;
}

public void setId(long id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}
输出结果:
Set集合中的所有元素:
521 李同学
522 马同学
529 陈同学
553 王同学
截取前面部分的集合:
521 李同学
522 马同学
截取中间部分的集合
529 陈同学
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息