刚开始学的菜鸟来求问基础java的问题。。

上下的左右 发布于 2013/05/27 10:59
阅读 170
收藏 0

import java.util.Arrays;
public class 排序 {
 public static void main(String[] args){
  int a[]={1,4,3,2,5};
  System.out.println("原数组为:");
  for(int i=0;i<a.length;i++){
   System.out.print( a[i]+"\t");
  }
  System.out.println( );
  Arrays.sort(a);
  System.out.println("排序后的数组:");
  for(int i=a.length;i>=0;i--){
   System.out.print(a[i]+"\t");
  }
 }

}

 

我想将上面的数组进行降序排列,arrays的排列是升序的,所以我想把排序好的数组倒着输出,就把下面的循环到了一下,用了 for(int i=a.length;i>=0;i--),但是应该是错了,我后来把这句程序改了下,改成 for(int i=4;i>=0;i--),就可以正常输出结果

所以问题应该是在a.length上面,a.length是不是不能用来做赋值的?

如果想要进行降序排列,有什么函数,或者是更方便的方法么?

加载中
0
josh1707
josh1707

因为a.length 是5,所以执行到a[i]时是a[5],没有a[5]。所以出错。改成 int i = a.length - 1;
至于排序,可以自己实现排序算法。

josh1707
josh1707
回复 @上下的左右 : 如果要用Arrays.sort的话,一种可以像你那样从后面遍历。或者用Arrays.sort(T[] a, Comparator<? super T> c);这个方法。自己实现Comparator接口,定义比较规则。
上下的左右
上下的左右
就是说降序是没有类似于arrays这样的方法,要自己构造函数的?
返回顶部
顶部