重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
升序你就直接用Arrays.sort(....)就可以了。要降序的话,你得自己实现Comparator ,然后重写compare方法就可以了,给个例子:
创新互联主营灵璧网站建设的网络公司,主营网站建设方案,重庆APP开发,灵璧h5小程序设计搭建,灵璧网站营销推广欢迎灵璧等地区企业咨询
# 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));
}
}
单纯的字符串或者数字排列可用Collections.sort(object o)方法,这样方便。
如果是要对对象中的某一进行排序,则可实现Comparator接口,复写其中的Compare方法;然后调用Collections.sort(object 0 , Comparator c)方法;
说的只是思路,具体问题可以查看帮助文档。
public class SortNumString {//定义SortNumString方法 public static String[] sortNumStr(String numStr){// 定义一个String[](数组)为返回值的类并且带参数(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()];//实例化变量把它赋给一个数组 int i = 0;//定义i while(mToken.hasMoreTokens()){ //进行while循环 result[i] = mToken.nextToken();//从i即0开始从数组取值 i++;//每取出一个值就自增+1取下个值 } return result;//返回这组值 } public static void main(String[] args){//主方法 String[] s = sortNumStr("99 345 8 888 55 0 -9999 30");//为这个数组赋值 int[] ii = new int[s.length];//定义数组ii规定长度为String[] result数组的个数 for(int i = 0;iii.length;i++ ){//进行for循环 定义i,并且i小于int[] ii数组的长度,每循环一次自增一次i++ ii[i] = Integer.parseInt(s[i]); //为int[]赋值并强转为Integer类型 } Arrays.sort(ii);//对指定的数进行排序 //ASC for(int i = 0; i ii.length;i++){//循环输出int[] ii数组的值 if (i 0) {//如果i0 System.out.print(" ");//则输出“ ” } System.out.print(ii[i]);//否则输出int[] ii数组的值 } /* //DESC for(int i = s.length -1;i=0;i--){ if (i s.length-1) { System.out.print(" "); } System.out.print(ii[i]); }*/ } }