TreeSet实现排序(一)

简介: package cn.cp; import java.util.Iterator; import java.util.TreeSet; //存入TreeSet集合中的元素是无序的,但有方法给它排序 //排序方式一:让元素自身具备比较性,需...
package cn.cp;
import java.util.Iterator;
import java.util.TreeSet;
//存入TreeSet集合中的元素是无序的,但有方法给它排序
//排序方式一:让元素自身具备比较性,需元素实现Comparable接口
//核心:重写Comparable接口的方法compareTo(Object obj)
//if (tea.age == this.age) //年纪相同时再按照姓名排序!!!
//         return this.name.compareTo(tea.name);
//因为String也类实现了此接口,当然就可以调用compareTo()方法
class Teacher implements Comparable {
	private int age;
	private String name;
	public Teacher(int age, String name) {
		this.age = age;
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public String getName() {
		return name;
	}
	@Override
	public String toString() {
		return "Teacher [age=" + age + ", name=" + name + "]";
	}
	@Override
	public int compareTo(Object obj) {//按照年纪排序
		Teacher tea = (Teacher) obj;
		if (tea.age < this.age) {
			return -1;
		}
		if (tea.age == this.age) {//年纪相同时再按照姓名排序!!!核心
			return this.name.compareTo(tea.name);
		}
		if (tea.age > this.age) {
			return 1;
		}
		return 0;
	}

}

public class TreeSetTest1 {
	public static void main(String[] args) {
        Teacher teac1=new Teacher(25, "lim");
        Teacher teac2=new Teacher(26, "uim");
        Teacher teac3=new Teacher(55, "zim");
        Teacher teac4=new Teacher(55, "mim");
        Teacher teac5=new Teacher(55, "cim");
        TreeSet treeSet=new TreeSet();
        treeSet.add(teac1);
        treeSet.add(teac2);
        treeSet.add(teac3);
        treeSet.add(teac4);
        treeSet.add(teac5);
        Iterator iterator=treeSet.iterator();
        while(iterator.hasNext()){
        	Teacher t=(Teacher) iterator.next();
        	System.out.println(t.getName()+"的年纪是"+t.getAge());
        }
	}
}

相关文章
|
7月前
TreeMap的排序
TreeMap的排序
40 0
|
8月前
TreeSet集合
TreeSet集合
29 0
|
8月前
Map的遍历和Map的有序和无序
Map的遍历和Map的有序和无序
49 0
|
10月前
TreeMap实现排序
TreeMap实现排序
集合排序-List集合
在Collections下有一个方法,sort()方法,不仅是数值,其他类型也有默认的排序方法
|
存储 安全 API
TreeSet详解
TreeSet详解
122 0
TreeSet详解
TreeSet的两种排序方式
示例: 示例公用类: public class MyDate { private int month; private int year; private int day; @Override public String toString() { return "MyDate{" + "month=" + month + ", year=" + year +
78 0
TreeSet的两种排序方式
|
存储 Java 索引
【Java集合类】之TreeSet集合与Comparable/Comparator排序
【Java集合类】之TreeSet集合与Comparable/Comparator排序
109 0
|
存储 Java 索引
Java中TreeSet集合、自然排序、比较器排序、成绩排序及不重复随机数案例
TreeSet集合、自然排序、比较器排序、成绩排序及不重复随机数案例的简单示例
149 0
Java中TreeSet集合、自然排序、比较器排序、成绩排序及不重复随机数案例
|
存储
TreeSet相关问题
TreeSet相关问题