升序你就直接用Arrays.sort(....)就可以了。要降序的話,你得自己實現(xiàn)Comparator ,然后重寫compare方法就可以了,給個例子:
創(chuàng)新互聯(lián)主營靈璧網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP開發(fā),靈璧h5小程序設(shè)計搭建,靈璧網(wǎng)站營銷推廣歡迎靈璧等地區(qū)企業(yè)咨詢
# class ByWeightComparator implements Comparator {
# public final int compare(Object c1, Object c2) {
# if(((Cat)c1).getWeight() ((Cat)c2).getWeight()) {
# return 1;
# } else if(((Cat)c1).getWeight() == ((Cat)c2).getWeight()) {
# return 0;
# } else return -1;
# }
# }
import?java.util.*;
public?class?Test?{
public?static?void?main(String[]?args)?{
int?stuNum?=?4;
int?classNum?=?3;
double[]?score?=?new?double[stuNum];
double?sum?=?0;
double[]?avgrage?=?new?double[classNum];
double[]?arr?=?new?double[classNum?*?stuNum];
Scanner?input?=?new?Scanner(System.?in?);
for?(int?i?=?0;?i??classNum;?i++)?{
sum?=?0;
System.out.println("請輸入第"?+?(i?+?1)?+?"個班級成績:");
for?(int?j?=?0;?j??score.length;?j++)?{
System.out.print("第"?+?(j?+?1)?+?"個學員的成績:");
double?s?=?input.nextDouble();
score[j]?=?s;
sum?+=?s;
arr[i?*?stuNum?+?j]?=?s;
}
avgrage[i]?=?sum?/?score.length;
System.out.println("第"?+?(i?+?1)?+?"個班級參賽學員的平均分是:"?+?avgrage[i]?+?"\n");
}
input.close();
System.out.println("原序:?"?+?Arrays.toString(arr));
//升序
for?(int?i?=?0;?i??arr.length;?i++)?{
for?(int?j?=?i?+?1;?j??arr.length;?j++)?{
if?(arr[i]??arr[j])?{
double?tmp?=?arr[i];
arr[i]?=?arr[j];
arr[j]?=?tmp;
}
}
}
System.out.println("升序:?"?+?Arrays.toString(arr));
//降序
for?(int?i?=?0;?i??arr.length;?i++)?{
for?(int?j?=?i?+?1;?j??arr.length;?j++)?{
if?(arr[i]??arr[j])?{
double?tmp?=?arr[i];
arr[i]?=?arr[j];
arr[j]?=?tmp;
}
}
}
System.out.println("降序:?"?+?Arrays.toString(arr));
}
}
單純的字符串或者數(shù)字排列可用Collections.sort(object o)方法,這樣方便。
如果是要對對象中的某一進行排序,則可實現(xiàn)Comparator接口,復寫其中的Compare方法;然后調(diào)用Collections.sort(object 0 , Comparator c)方法;
說的只是思路,具體問題可以查看幫助文檔。
public class SortNumString {//定義SortNumString方法 public static String[] sortNumStr(String numStr){// 定義一個String[](數(shù)組)為返回值的類并且?guī)?shù)(String numStr) if(numStr==null||numStr.trim().equals(""))//if判斷如果numStr為空值 return null; //就返回(return)空(null) StringTokenizer mToken = new StringTokenizer(numStr);//定義變量 String[] result = new String[mToken.countTokens()];//實例化變量把它賦給一個數(shù)組 int i = 0;//定義i while(mToken.hasMoreTokens()){ //進行while循環(huán) result[i] = mToken.nextToken();//從i即0開始從數(shù)組取值 i++;//每取出一個值就自增+1取下個值 } return result;//返回這組值 } public static void main(String[] args){//主方法 String[] s = sortNumStr("99 345 8 888 55 0 -9999 30");//為這個數(shù)組賦值 int[] ii = new int[s.length];//定義數(shù)組ii規(guī)定長度為String[] result數(shù)組的個數(shù) for(int i = 0;iii.length;i++ ){//進行for循環(huán) 定義i,并且i小于int[] ii數(shù)組的長度,每循環(huán)一次自增一次i++ ii[i] = Integer.parseInt(s[i]); //為int[]賦值并強轉(zhuǎn)為Integer類型 } Arrays.sort(ii);//對指定的數(shù)進行排序 //ASC for(int i = 0; i ii.length;i++){//循環(huán)輸出int[] ii數(shù)組的值 if (i 0) {//如果i0 System.out.print(" ");//則輸出“ ” } System.out.print(ii[i]);//否則輸出int[] ii數(shù)組的值 } /* //DESC for(int i = s.length -1;i=0;i--){ if (i s.length-1) { System.out.print(" "); } System.out.print(ii[i]); }*/ } }