java TreeSet的排序之自然排序
Posted fanweisheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java TreeSet的排序之自然排序相关的知识,希望对你有一定的参考价值。
TreeSet会调用元素的compareTo(Object o)方法来比较元素之间的大小关系,然后将集合里的元素按升序排列.此时需要排序元素的类必须实现Compareble接口,并覆写其int compareTo(Object o)方法;
该方法用于比较对象,若:obj1,compareTo(obj2),返回0,表示两个对象相等,若返回一个正整数,表示obj1大于obj2,若返回一个负整数,表示obj1小于obj2;
对于TreeSet集合而言,判断两个对象相等的标准是:
compareTo()方法比较返回 0;
package july7;
//TreeSet可以自动进行排序!最简单的情况
import java.util.Set;
import java.util.TreeSet;
public class Demo13
public static void main(String[] args)
Set<Integer> s = new TreeSet<Integer>();
s.add(1);
s.add(192);
s.add(123);
s.add(56);
s.add(13);
s.add(96);
System.out.println(s);//[1, 13, 56, 96, 123, 192]
稍复杂点的
package july7;
//TreeSet的自然排序,升序
import java.util.Set;
import java.util.TreeSet;
class Student implements Comparable//必须实现接口
private Integer age;
public Student(Integer age)
super();
this.age = age;
@Override
public int compareTo(Object o) //比较的规则,运用泛型可以消除强转!
if(o instanceof Student)
Student s = (Student)o;
return this.age.compareTo(s.age);
return 0;
@Override
public String toString()
return age+"" ;
public class Demo14
public static void main(String[] args)
Set<Student> s = new TreeSet();
s.add(new Student(140));
s.add(new Student(15));
s.add(new Student(11));
s.add(new Student(63));
s.add(new Student(96));
System.out.println(s);//[11, 15, 63, 96, 140]
以上是关于java TreeSet的排序之自然排序的主要内容,如果未能解决你的问题,请参考以下文章