[英]TreeSet Sorting Order Confusion
我知道 Java 中的 TreeSet 按升序对其元素进行排序。 对于 integer,它将是 1、2、3、4、5,对于字符串,它将是按字母顺序排列的。 但是,如果我想在那个 TreeSet 中输入对象,默认情况下它是如何排序的呢?
object 必须实现Comparable
class MyObject implements Comparable<MyObject>
{
int value;
MyObject(int value)
{
this.value=value;
}
//Sorting order controlled here
@Override
public int compareTo(MyObject m)
{
return Integer.compare(this.value,m.value);
}
}
TreeSet<MyObject> set=new TreeSet();
//add stuff here
或者您提供自己的Comparator 。 使用 lambda 表达式与 java 7 及以上
TreeSet<MyObject> set=new TreeSet((obj1,obj2)->Integer.compare(obj1.value,obj2.value));
Comparator 优先于 Comparable 并且您的 object 不需要实现 Comparable 这对于不实现接口的 3rd 方库很有用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.