当前位置: 代码迷 >> J2SE >> java API中,没有对数组降序排序的方法?解决办法
  详细解决方案

java API中,没有对数组降序排序的方法?解决办法

热度:117   发布时间:2016-04-24 02:02:46.0
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+" ");        }    }}
  相关解决方案