java中array的sort方法 Java中對(duì)數(shù)組升序排列用Arrays.sort( )方法,那降序排列用什么方法?
Java中對(duì)數(shù)組升序排列用Arrays.sort( )方法,那降序排列用什么方法?如果實(shí)現(xiàn)可比較接口的類執(zhí)行int CompareTo(object o)方法,則返回1的類將放在它后面。例如,類a實(shí)現(xiàn)
Java中對(duì)數(shù)組升序排列用Arrays.sort( )方法,那降序排列用什么方法?
如果實(shí)現(xiàn)可比較接口的類執(zhí)行int CompareTo(object o)方法,則返回1的類將放在它后面。例如,類a實(shí)現(xiàn)了可比較的接口,類a有A1和A2對(duì)象。如果A1的值。CompareTo(A2)為1,表示A1>A2,sort后跟A2和A1
Java中arrays類的sort方法默認(rèn)是對(duì)基本數(shù)據(jù)類型按升序排序,如sort(int[]ARR)和sort(double[]JDK API中有如下內(nèi)容:
如圖所示,倒數(shù)第二行和第三行中的對(duì)象數(shù)組排序也是默認(rèn)的升序,但是在輸入這行代碼之前,需要為要排序的對(duì)象數(shù)組完成一個(gè)可比較的接口。以此為標(biāo)準(zhǔn)進(jìn)行排序。詳見下圖:~數(shù)組.排序方法的一個(gè)參數(shù)默認(rèn)按升序排列。您希望按降序排列第一個(gè)方法重載的兩個(gè)參數(shù)數(shù)組.排序?qū)τ诘诙€(gè)參數(shù),您需要自定義一個(gè)comparator類來實(shí)現(xiàn)comacomparator接口,并根據(jù)需要重置compare方法。]第二種方法首先按升序進(jìn)行,然后調(diào)用數(shù)組的asList方法將其轉(zhuǎn)換為數(shù)組,然后調(diào)用集合的reverse方法將其按逆序排列,最后調(diào)用集合的toArray方法將其轉(zhuǎn)換為數(shù)組。
為什么java的arrays類的sort方法對(duì)對(duì)象數(shù)組采用合并排序,而對(duì)基本類型數(shù)組卻采用快速排序?
這類問題一般看源代碼是最直接的解決方案。閱讀源代碼之后,您應(yīng)該了解sort方法將元素轉(zhuǎn)換為可比較的類型,然后調(diào)用compareTo方法。因此,我們必須實(shí)現(xiàn)comparable接口并提供CompareTo方法。此外,這是面向接口的好處。希望對(duì)你有所幫助,哦(∩)謝謝