Arrays.sort()方法雖然功能強(qiáng)大,但是在平常的使用中難免會(huì)出現(xiàn)各種情況使得其無法滿足我們的需求,這個(gè)時(shí)候就該用到:
Arrays.sort(a,fromIndex,toIndex,c);
這種用法了
先對(duì)方法中的各項(xiàng)參數(shù)進(jìn)行解釋:
a——需要進(jìn)行排序的對(duì)象
fromIndex——排序進(jìn)行的起始位置
toIndex——排序的終止位置
c——自定義的排序規(guī)則
實(shí)現(xiàn)的代碼如下:
import?java.util.Arrays;import?java.util.Comparator;import?java.util.Scanner;//定義類aclass?a{????int?n;}//定義類cmp,制定排序規(guī)則class?cmp?implements?Comparator{????public?int?compare(a?A,?a?B)?{????????if(A.n?>?B.n)return?-1;????????if(A.n?==?B.n)return?0;????????if(A.n?<?B.n)return?1;????????return?0;????}}public?class?Main{????public?static?void?main(String?args[]){????????Scanner?sc?=?new?Scanner(System.in);????????while(sc.hasNext()){????????????int?n?=?sc.nextInt();????????????a?t[]?=?new?a?[n];????????????for(int?i?=?0;i?<?n;i++){????????????????t[i]?=?new?a();//為類分配內(nèi)存必不可少????????????????t[i].n?=?sc.nextInt();????????????}????????????Arrays.sort(t,0,n,new?cmp());????????????for(int?i?=?0;i?<?n;i++)????????????????System.out.print(t[i].n+"?");????????????System.out.println();????????}????}}
它的效果是對(duì)含有一個(gè)int型成員變量n的類a的數(shù)組按n的大小進(jìn)行降序排序
在上面給出的代碼中,最為關(guān)鍵的地方在于這一段:
//定義類cmp,制定排序規(guī)則class cmp implements Comparator{ public int compare(a A, a B) { if(A.n > B.n)return -1; if(A.n == B.n)return 0; if(A.n < B.n)return 1; return 0; }}在compare(
PS:如果方法的應(yīng)用對(duì)象是類,那么對(duì)于每一個(gè)對(duì)象來說,這一段都是必不可少的:
t[i] = new a();//為類分配內(nèi)存必不可少
以上就是深圳達(dá)內(nèi)教育java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java中的arrays類的sort方法”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。