最新消息:

对java数组进行降序和升序排序

JAVA 大步 2146浏览 0评论

java.util.Arrays 类中提供了几个静态方法用来对数组进行排序。例如:使用Arrays.sort(),然后将数组作为参数传入,然后返回排序完的数组。java中,我们也可以使用升序或降序,或者是自定义comparator来进行排序。

对java数组进行升序排序

对数组(String,int等类型)进行升序排序,我们可以直接使用Arrays.sort()方法,该方法会默认根据CompareTo方法实现的自然顺序(natral order)进行升序排序。所谓自然顺序,如对于String类型,根据字母表进行排序,对于整数类型,则按数字的大小进行排序。我们也可以使用该方法对匿名数组进行排序,不过这并没哟什么实际意义。

对java数组进行降序排序

为了对java数组实现降序排序,你需要提供一个外部的Comparator
来对元素按相反的顺序排序。不过,java的api中给我们提供了这样java.util.Collections.reverseOrder()方法,该方法返回一个与自然顺序相反的comparator。将这个comparator作为参数传给sort方法,就可以实现降序排序了。当然也可以先将数组转换为ArrayList,然后调用ArrayList的reverse()方法,再转换为数组。不过最好还是使用Arrays.sort()方法。

对java数组中的子数组进行排序

Arrays类提供了对数组的部分元素进行排序的方法。例如,你可能有一个很多的数组,而你只需要对于特定的一段进行排序,那么可以使用java.util.Arrays.sort(array,index,index) ,它只会对指定范围内的元素进行排序。这比对整个数组进行排序要快。

下面贴出完整的代码:

 

关于Arrays.sort()方法的重要点:
1.Arrays.sort()是一个重载的方法。可以对int,byte,short,char或这Object[]数组进行排序。
2.Arrays.sort()也可以数组的子数组进行排序
3.Arrays类还提供了其他一些工具方法,如binarySearch折半查找对数组进行查找。

转载请注明:大步's Blog » 对java数组进行降序和升序排序

SiteMap