java API中,没有对数组降序排序的方法?解决办法
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 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+" "); } } }