treeSet实现排序两种放方法

2017-12-12  本文已影响6人  魂之挽歌w

//存入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(intage, String name) {

this.age = age;

this.name = name;

}

public  int   getAge() {

returnage;

}

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 

return-1;

}

if(tea.age ==this.age) {//年纪相同时再按照姓名排序!!!核心

return  this.name.compareTo(tea.name);

}

if(tea.age >this.age) {

return1;

}

return0;

}

}

publicclassTreeSetTest1 {

public    static    voidmain(String[] args) {

Teacher teac1=newTeacher(25,"lim");

Teacher teac2=newTeacher(26,"uim");

Teacher teac3=newTeacher(55,"zim");

Teacher teac4=newTeacher(55,"mim");

Teacher teac5=newTeacher(55,"cim");

TreeSet treeSet=newTreeSet();

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());

}

}

}

方式二:对treeSet设置conparator

上一篇 下一篇

猜你喜欢

热点阅读