treeset如何排序 javaset集合的值可以排序嗎?
javaset集合的值可以排序嗎?Set集合的排序我們知道,Set集合是無序的,可以使用TreeSet類,那么TreeSet進行排序的規(guī)則是怎樣的呢?1TreeSet支持兩種排序方式,自然排序和定制排
javaset集合的值可以排序嗎?
Set集合的排序我們知道,Set集合是無序的,可以使用TreeSet類,那么TreeSet進行排序的規(guī)則是怎樣的呢?1TreeSet支持兩種排序方式,自然排序和定制排序,在默認情況下,TreeSet采用自然排序.自然排序:TreeSet會調(diào)用集合元素的compareTo(Objectobj)方法來比較元素之間的大小關(guān)系,然后將集合的元素按升序排列,這種方式就是自然排序.為什么集合元素有compareTo方法,因為集合元素對象實現(xiàn)了Comparable接口,該方法返回一個整數(shù)值,當(dāng)一個對象調(diào)用該方法與另一個對象進行比較,例如:obj1.compareTo(obj2)如果返回0,表示這兩個對象相等,如果該方法返回一個正整數(shù),表示obj1大于obj2如果該方法返回一個負整數(shù),表示obj1小于obj2所以需要使用TreeSet集合進行自然排序,元素必須實現(xiàn)Comparable接口,但是Java一些常用的類已經(jīng)實現(xiàn)了該接口,例如:StringCharacterBooleanDateTimeBigDecimalBigInteger等如:TreeSet<String>ts=newTreeSet<String>()ts.add("b")ts.add("c")ts.add("a")System.out.println(ts)結(jié)果:abc