單點(diǎn)登錄 什么樣的集合可以排序?
什么樣的集合可以排序?只要集合是有序集合,就可以對(duì)其進(jìn)行排序。官方說法是,如果集合中的二元關(guān)系是自反的、反對(duì)稱的和傳遞的,那么集合是有序的,可以排序。如果集合中的任意兩個(gè)元素可以以相同的方式進(jìn)行比較,
什么樣的集合可以排序?
只要集合是有序集合,就可以對(duì)其進(jìn)行排序。官方說法是,如果集合中的二元關(guān)系是自反的、反對(duì)稱的和傳遞的,那么集合是有序的,可以排序。如果集合中的任意兩個(gè)元素可以以相同的方式進(jìn)行比較,則集合可以排序
主要要求是對(duì)列表中的類進(jìn)行排序。當(dāng)然,使用排序方法。collection類基本上什么都沒有,它是collection輔助方法的補(bǔ)充(ArrayList、LinkedList都實(shí)現(xiàn)了這個(gè)接口),建議大家看一下源代碼。集合.排序(list,comparator)第一個(gè)參數(shù)列表是問題所有者提到的需要排序的列表,第二個(gè)參數(shù)列表是comparator類。重寫它。這里有點(diǎn)復(fù)雜。它可能涉及匿名類,或者您可以了解更多。jdk8中的lambda函數(shù)也可以實(shí)現(xiàn)。
集合list排序?
我們知道集合是無序的,可以使用TreeSet類。樹集排序的規(guī)則是什么?1treeset支持兩種排序方法:自然排序和自定義排序。默認(rèn)情況下,TreeSet采用自然排序。自然排序:TreeSet調(diào)用set元素的CompareTo(objectobj)方法來比較元素的大小為什么set元素有CompareTo方法?因?yàn)閟et element對(duì)象實(shí)現(xiàn)了可比較的接口。此方法返回一個(gè)整數(shù)值。當(dāng)一個(gè)對(duì)象調(diào)用此方法時(shí),它會(huì)與另一個(gè)對(duì)象進(jìn)行比較。例如,obb1。CompareTo(obb2)如果返回0,則表示兩個(gè)對(duì)象相等,例如如果該方法返回正整數(shù),則表示obji1大于obji2。如果該方法返回負(fù)整數(shù),則表示obji1小于obji2,因此需要使用TreeSet集合進(jìn)行自然排序,并且元素必須實(shí)現(xiàn)可比較接口。但是,一些常見的Java類已經(jīng)實(shí)現(xiàn)了該接口,例如:stringcharacterboolean datetimebigdecimalbiginteger等,例如:TreeSet<string>Ts=new reeSet<string>()ts.添加(“b”)ts.添加(“c”)ts.添加(“a”)系統(tǒng)輸出打?。═S)結(jié)果:ABC
javaset集合的值可以排序嗎?
如何對(duì)List中的對(duì)象進(jìn)行排序?
插入排序、選擇排序、氣泡排序、快速排序等main(String[]args){int[]數(shù)組={
9,
8,
7,
6,
5,
4,
3,
2,
1,0,-1,-2,-3}系統(tǒng)輸出打?。ā芭判蚯埃骸保〢rrayUtils.printArray(數(shù)組)快速排序(數(shù)組)系統(tǒng)輸出打?。ā芭判蚝螅骸保〢rrayUtils.printArray(數(shù)組)}公共靜態(tài)void快速排序(int[]數(shù)組){子快速排序(數(shù)組,0數(shù)組長(zhǎng)度-1)}私有靜態(tài)void子快速排序(int[]array,int start,int end){if(array==null | |(end-start 1)