本帖最后由 小穿钉 于 2015-11-17 10:22 编辑
package cn.set;
import java.util.Iterator;
import java.util.TreeSet;
/**
* TreeSet可以对Set集合的元素进行排序,是不同步的,
* 判断元素的唯一性,就是根据比较方法的返回结果会否为零,如果是零,就不存。
*
* TreeSet排序方式之一:让元素自身具有比较功能(自然排序),元素需要实现comparable接口,重写compareTo方法
*
* @author Administrator
*
*/
public class TreeSetDemo {
public static void main(String[] args) {
//创建TreeSet集合,
TreeSet ts = new TreeSet();
//调用方法
treeSetSortDemo(ts);
}
/**
* 对集合遍历后进行排序输出
*/
public static void treeSetSortDemo(TreeSet ts) {
//向集合中添加元素
ts.add(new Worker("小明",23));
ts.add(new Worker("小红",25));
ts.add(new Worker("小刚",27));
ts.add(new Worker("小蓝",13));
ts.add(new Worker("小花",43));
//对集合进行遍历,输出有顺序的元素
Iterator it = ts.iterator();
while(it.hasNext()){
//向下强制转换
Worker p = (Worker)it.next();
System.out.println(p);
}
}
}
/**
* 创建一个Worker类
* @author Administrator
*
*/
class Worker implements Comparable{
//私有成员变量
private String name;
private int age;
//构造方法初始化对象
public Worker(String name, int age) {
super();
this.name = name;
this.age = age;
}
//set与get方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//重写toString方法
@Override
public String toString() {
return "名字:"+name+"\t年龄"+age;
}
//重写compareTo方法
@Override
public int compareTo(Object o) {
//判断类型
if(!(o instanceof Worker))
throw new ClassCastException("类型错误");
//向下强制转型
Worker p = (Worker)o;
int temp = this.age-p.age;
return temp==0?this.name.compareTo(p.name):temp;
}
}
|
|