详解Java sort()数组排序(升序和降序)
我们在学习Java的过程中肯定会遇到对数组进行升序或降序等排序问题,本节主要介绍如何实现Java数组的升序和降序。Java语言使用Arrays类提供的sort()方法来对数组进行排序。
升序
使用java.util.Arrays类中的sort()方法对数组进行升序分为以下两步:
- 导入java.util.Arrays包。
- 使用Arrays.sort(数组名)语法对数组进行排序,排序规则是从小到大,即升序。
假设在数组scores中存放了5名学生的成绩,现在要实现从低到高排列的功能。在这里使用Arrays.sort()方法来实现,具体代码如下:
publicstaticvoidmain(String[]args){ //定义含有5个元素的数组 double[]scores=newdouble[]{78,45,85,97,87}; System.out.println("排序前数组内容如下:"); //对scores数组进行循环遍历 for(inti=0;i如上述代码所示,要对一个数组进行升序排列,只需要调用Arrays.sort()方法即可。运行后的输出结果如下所示。
排序前数组内容如下:
78.0 45.0 85.0 97.0 87.0
排序后的数组内容如下:
45.0 78.0 85.0 87.0 97.0
降序
在Java语言中使用sort实现降序有两种方法,简单了解即可。
1)利用Collections.reverseOrder()方法(Collections是一个包装类。大家可以学习《JavaCollections类》一节详细了解):
publicstaticvoidmain(String[]args){ Integer[]a={9,8,7,2,3,4,1,0,6,5};//数组类型为Integer Arrays.sort(a,Collections.reverseOrder()); for(intarr:a){ System.out.print(arr+""); } }输出结果如下:
98765432102)实现Comparator接口的复写compare()方法,代码如下:
publicclassTest{ publicstaticvoidmain(String[]args){ /* *注意,要想改变默认的排列顺序,不能使用基本类型(int,double,char)而要使用它们对应的类 */ Integer[]a={9,8,7,2,3,4,1,0,6,5}; //定义一个自定义类MyComparator的对象 Comparatorcmp=newMyComparator(); Arrays.sort(a,cmp); for(intarr:a){ System.out.print(arr+""); } } } //实现Comparator接口 classMyComparatorimplementsComparator{ @Override publicintcompare(Integero1,Integero2){ /* *如果o1小于o2,我们就返回正值,如果o1大于o2我们就返回负值,这样颠倒一下,就可以实现降序排序了,反之即可自定义升序排序了 */ returno2-o1; } } 输出结果如下所示。
9876543210注意:使用以上两种方法时,数组必须是包装类型,否则会编译不通过。
在Java中实现数组排序的方式很多,除了利用以上的几种方法外,还可以编写自定义方法来实现自己的排序算法,有兴趣的读者可以尝试编写。
Java排序方法sort的使用详解
对数组的排序:
//对数组排序 publicvoidarraySort(){ int[]arr={1,4,6,333,8,2}; Arrays.sort(arr);//使用java.util.Arrays对象的sort方法 for(inti=0;i对集合的排序:
//对list升序排序 publicvoidlistSort1(){ Listlist=newArrayList (); list.add(1); list.add(55); list.add(9); list.add(0); list.add(2); Collections.sort(list);//使用Collections的sort方法 for(inta:list){ System.out.println(a); } } //对list降序排序 publicvoidlistSort2(){ List list=newArrayList (); list.add(1); list.add(55); list.add(9); list.add(0); list.add(2); Collections.sort(list,newComparator (){ publicintcompare(Integero1,Integero2){ returno2-o1; } });//使用Collections的sort方法,并且重写compare方法 for(inta:list){ System.out.println(a); } } 到此这篇关于详解Javasort()数组排序(升序和降序)的文章就介绍到这了,更多相关Javasort()数组排序内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!