日期:2014-05-20  浏览次数:20804 次

java API中,没有对数组降序排序的方法?
java API中,没有对数组降序排序的方法?如果题目要求降序排序,我们只能自己写方法?

------解决方案--------------------
先升序 再倒着输出来
------解决方案--------------------
探讨
先升序 再倒着输出来

------解决方案--------------------
探讨
"从控制台读入5个int型数存入数组,先将数组元素逆序输出,再对数组元素进行降序排序,然后输出排好的数组元素。"这个怎么办?只能自己写了?

------解决方案--------------------
探讨

引用:
先升序 再倒着输出来
集合类中有一个collection.sort()的方法可以对list升序排序,像一楼说的然后倒序保存。

------解决方案--------------------
通过回调的方法来实现,其实你只要写一个方法,也挺简单的呀。
public void sortTest(){
com.qhit.po.A a[] = new com.qhit.po.A[]{new com.qhit.po.A(100,"xm"),new com.qhit.po.A(50,"qhit"),new com.qhit.po.A(1,"xmqhit")};
Arrays.sort(a, 0, a.length, new Comparator<com.qhit.po.A>(){

public int compare(A arg0, A arg1) {
return arg1.getPb() - arg0.getPb();
}

});

for(com.qhit.po.A _a:a){
System.out.println(_a.toString());
}
}
像这段代码。
------解决方案--------------------
sort方法好像只提供升序排序
自己写冒泡排序吧
------解决方案--------------------
要多看API 
Java code

import java.util.Arrays;
import java.util.Comparator;

public class Test4 {
    
    public static void main(String[] args) {
        Integer[] nums = {1,2,3,4,5,6};
        Arrays.sort(nums, new MyComparator());
        for (int i = 0; i < nums.length; i++) {
            System.out.println(nums[i]);
        }
    }
    
}

class MyComparator implements Comparator<Integer> {

    public int compare(Integer o1, Integer o2) {
        return o2 - o1;
    }

}

------解决方案--------------------
探讨

要多看API
Java code

import java.util.Arrays;
import java.util.Comparator;

public class Test4 {

public static void main(String[] args) {
Integer[] nums = {1,2,3,4,5,6};
Arra……

------解决方案--------------------
降序需要自己实现比较器,详情参见
java.util 类 Arrays
public static <T> void sort(T[] a,Comparator<? super T> c)
------解决方案--------------------
先升序 再倒着输出来
------解决方案--------------------
Java code

import java.util.Arrays;
import java.util.Scanner;
public class MySort {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int num[]=new int[5];
        Scanner input=new Scanner(System.in);
        int i=0;
        System.out.println("请输入五个整数");
        //获取五个整数输入
        while(i<5){
            System.out.print("请输入第"+(i+1)+"个数:");
            try{
                num[i]=input.nextInt();
                i++;
                System.out.println();
            }catch(NumberFormatException e){
                System.out.println("你输入的不是整数,请重新输入!");
            }
        }
        //排序前输出
        System.out.println("排序前的数组元素如下");
        for(int elem:num){
            System.out.print(elem+" ");
        }
        System.out.println();
        System.out.println("排序后的数组元素如下");
        //对五个整数排序,先升序,再降序
        Arrays.sort(num);
        int num1[]=new int[5];
        for(int j=0;j<5;j++)
            num1[j]=num[4-j];
        num=num1;
        for(int elem:num){
            System.out.print(elem+" ");
        }
    }

}