java数组sort()方法降序怎么排

比如 一个数组 名int[] height = {1,2,3,4,5,} sort()方法给他排升序Arrays.sort(height)
结果为12345如果要给它排降序为54321怎么写?

java数组sort()方法降序方式:

用Arrays类sort()对数组元素进行降序排列

import java.util.Arrays;

class SortDemo

{

public static void main(String[] args) 

{

int[] vec={0,15,-14,45,20,70};  

Arrays.sort(vec);

System.out.println("/n");

System.out.println("降序排列:");

for (int i=vec.length-1;i>=0 ;i-- )

{   

System.out.print(vec[i]+" ");   

}

}

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-19

三步:

    通过Arrays.asList(height);转为list型

    通过Collections.sort(list);升序排列

    通过Collections.reverse(list);反向排序, 就是降序了


    自定义接口也要写好多代码, 不如这个来的简洁. 

    如果觉得检索大数据会慢, 那就自己写冒泡吧二叉什么排序吧~

第2个回答  2010-10-24
看了一下Arrays这个类 貌似没有降序排序这个方法,Collections这个类里有个方法可以实现

public class TestToArray {
public static void main(String[] args) {

//int[] height = {1,2,3,4,5,}
ArrayList<Integer> list2=new ArrayList<Integer>();
for(int i=1;i<=5;i++)
{
list2.add(i);
}
Collections.reverse(list2);
for(int i=0; i<list2.size(); i++)
System.out.println(list2.get(i));
}
}

运行结果:

C:\Users\ZhangJun\Desktop\桌面文档\TestMethod>java TestToArray
5
4
3
2
1

不要意思 我这个只是实现了翻转顺序 并未排序 但是用Collections那个类的一些方法应该就能实现 稍后给你写
第3个回答  推荐于2017-09-26
用Arrays类sort()对数组元素进行降序排列:

import java.util.Arrays;
class SortDemo
{
public static void main(String[] args)
{
int[] vec={0,15,-14,45,20,70};
Arrays.sort(vec);

System.out.println("/n");
System.out.println("降序排列:");
for (int i=vec.length-1;i>=0 ;i-- )
{
System.out.print(vec[i]+" ");
}

}
}
第4个回答  推荐于2017-10-13
这个要实现Comparator接口,

import java.util.Arrays;
import java.util.Comparator;

public class Dog {

public static void main(String[] args) {

int[] height = {1,2,3,4,5, 7};

Integer[] heightIntegerAry = new Integer[height.length];

for(int i = 0; i < height.length; i++){
heightIntegerAry[i] = new Integer(height[i]);
}

Arrays.sort(heightIntegerAry, new IntValueComprator());

}

}

class IntValueComprator implements Comparator {

public int compare(Object arg0, Object arg1) {

int first = ((Integer)arg0).intValue();
int second = ((Integer)arg0).intValue();

if(first > second){
return 1;
}else{
return 2;
}
}

}本回答被提问者采纳