黑马程序员——TreeSet实现Comparable接口对自定义类排序

来源:互联网 发布:js 删除cookie path 编辑:程序博客网 时间:2024/06/07 10:00

                                          ----------------------    android培训    java培训   期待与您交流!    ----------------------   
                      

package collection.set;import java.util.Iterator;import java.util.TreeSet;public class TreeSet_class {public static void main(String[] args) {TreeSet ts=new TreeSet();ts.add(new Student("abc",23));ts.add(new Student("abcd",23));ts.add(new Student("fwqf",13));ts.add(new Student("Dfcda",53));ts.add(new Student("erea",73));ts.add(new Student("bca",33));Iterator iter=ts.iterator();while(iter.hasNext()){Student stu=(Student) iter.next();System.out.println(stu.getName()+"...."+stu.getAge());}}}class Student implements Comparable{//实现Comparable接口,强制使Student类具备比较性private String name;private int age;/* * 复写Comparable接口中的compareto()方法,从新定义比较规则 * 底层自动调用 * (non-Javadoc) * @see java.lang.Comparable#compareTo(java.lang.Object) */public int compareTo(Object obj){if(!(obj instanceof Student)){throw new RuntimeException("不是Student对象");}Student stu=(Student)obj;if(this.age>stu.age){return this.age-stu.age;}else if(this.age==stu.age){return this.name.compareTo(stu.name);//字符串已经实现了Comparable接口,可以直接调用}else{return -1;}}public Student(String name,int age){this.name=name;this.age=age;}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;}}

                                          ----------------------    android培训    java培训   期待与您交流!    ----------------------   
                         详细请查看      http://edu.csdn.net/heima