[英]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.