读书人

java API中没有对数组降序排序的方法

发布时间: 2012-03-05 11:54:01 作者: rapoo

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+" ");        }    }} 

读书人网 >J2SE开发

热点推荐