Set集合的排序我們知道,Set集合是無序的,可以使用TreeSet類,那麼TreeSet進行排序的規則是怎樣的呢?1TreeSet支援兩種排序方式,自然排序和定製排序,在預設情況下,TreeSet採用自然排序.自然排序:TreeSet會呼叫集合元素的compareTo(Objectobj)方法來比較元素之間的大小關係,然後將集合的元素按升序排列,這種方式就是自然排序.為什麼集合元素有compareTo方法,因為集合元素物件實現了Comparable介面,該方法返回一個整數值,當一個物件呼叫該方法與另一個物件進行比較,例如:obj1.compareTo(obj2)如果返回0,表示這兩個物件相等,如果該方法返回一個正整數,表示obj1大於obj2如果該方法返回一個負整數,表示obj1小於obj2所以需要使用TreeSet集合進行自然排序,元素必須實現Comparable介面,但是Java一些常用的類已經實現了該介面,例如:StringCharacterBooleanDateTimeBigDecimalBigInteger等如:TreeSet<String>ts=newTreeSet<String>();ts.add("b");ts.add("c");ts.add("a");System.out.println(ts);結果:abc
Set集合的排序我們知道,Set集合是無序的,可以使用TreeSet類,那麼TreeSet進行排序的規則是怎樣的呢?1TreeSet支援兩種排序方式,自然排序和定製排序,在預設情況下,TreeSet採用自然排序.自然排序:TreeSet會呼叫集合元素的compareTo(Objectobj)方法來比較元素之間的大小關係,然後將集合的元素按升序排列,這種方式就是自然排序.為什麼集合元素有compareTo方法,因為集合元素物件實現了Comparable介面,該方法返回一個整數值,當一個物件呼叫該方法與另一個物件進行比較,例如:obj1.compareTo(obj2)如果返回0,表示這兩個物件相等,如果該方法返回一個正整數,表示obj1大於obj2如果該方法返回一個負整數,表示obj1小於obj2所以需要使用TreeSet集合進行自然排序,元素必須實現Comparable介面,但是Java一些常用的類已經實現了該介面,例如:StringCharacterBooleanDateTimeBigDecimalBigInteger等如:TreeSet<String>ts=newTreeSet<String>();ts.add("b");ts.add("c");ts.add("a");System.out.println(ts);結果:abc