java API中,没有对数组降序排序的方法?
java API中,没有对数组降序排序的方法?如果题目要求降序排序,我们只能自己写方法?
------解决方案--------------------先升序 再倒着输出来
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------通过回调的方法来实现,其实你只要写一个方法,也挺简单的呀。
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;
}
}
------解决方案--------------------
------解决方案--------------------
降序需要自己实现比较器,详情参见
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+" ");
}
}
}