arrays.sort 什么排序为什么 arrays

Java中Array.sort()的几种用法 - 创造价值的IT人 - 推酷
Java中Array.sort()的几种用法 - 创造价值的IT人
Java的Arrays类中有一个sort()方法,该方法是Arrays类的静态方法,在需要对数组进行排序时,非常的好用。
但是sort()的参数有好几种,下面我就为大家一一介绍,这几种形式的用法。
======================================================
1、Arrays.sort(int[] a)
这种形式是对一个数组的所有元素进行排序,并且是按从小到大的顺序。
举例如下(点“+”可查看代码):
1 import java.util.A
3 public class Main {
public static void main(String[] args) {
int[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
Arrays.sort(a);
for(int i = 0; i & a. i ++) {
System.out.print(a[i] + & &);
运行结果如下:
0 1 2 3 4 5 6 7 8 9&
---------------------------------------------------------
2、Arrays.sort(int[] a, int fromIndex, int toIndex)
这种形式是对数组部分排序,也就是对数组a的下标从fromIndex到toIndex-1的元素排序,注意:下标为toIndex的元素不参与排序哦!
举例如下(点“+”可查看代码):
1 import java.util.A
3 public class Main {
public static void main(String[] args) {
int[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
Arrays.sort(a, 0, 3);
for(int i = 0; i & a. i ++) {
System.out.print(a[i] + & &);
运行结果如下:
7 8 9 2 3 4 1 0 6 5&
上例只是把 9 8 7排列成了7 8 9
----------------------------------------------------------
3、public static &T& void sort(T[] a,int fromIndex,
int toIndex,
&Comparator&? super T& c)
上面有一个拘束,就是排列顺序只能是从小到大,如果我们要从大到小,就要使用这种方式
这里牵扯到了Java里面的泛型,如果读者不是很了解,可以暂时不去管它,如果真的很想了解,建议查阅上面我推荐的那本书,上面有详细的介绍。
读者只需要读懂下面的例子就可以了,其实就是多了一个Comparator类型的参数而已。
3 import java.util.A
6 public class Main {
public static void main(String[] args) {
//注意,要想改变默认的排列顺序,不能使用基本类型(int,double, char)
//而要使用它们对应的类
Integer[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
//定义一个自定义类MyComparator的对象
Comparator cmp = new MyComparator();
Arrays.sort(a, cmp);
for(int i = 0; i & a. i ++) {
System.out.print(a[i] + & &);
19 //Comparator是一个接口,所以这里我们自己定义的类MyComparator要implents该接口
20 //而不是extends Comparator
21 class MyComparator implements Comparator&Integer&{
public int compare(Integer o1, Integer o2) {
//如果n1小于n2,我们就返回正值,如果n1大于n2我们就返回负值,
//这样颠倒一下,就可以实现反向排序了
if(o1 & o2) {
}else if(o1 & o2) {
return -1;
运行结果如下:
9 8 7 6 5 4 3 2 1 0&
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致请教关于Arrays.sort()的一个问题_java吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:577,312贴子:
请教关于Arrays.sort()的一个问题收藏
书上说,实现了Comparable接口的类的数组都可以用java.util.Arrays.sort()这一静态方法进行排序。我查看了String类的源文件,发现它实现类此接口。按理说是应该可以排序的,但是运行程序时却得到了一个异常,java.lang.NullPointerException at parableTimSort.binarySort(ComparableTimSort.java:232) at parableTimSort.sort(ComparableTimSort.java:176) at parableTimSort.sort(ComparableTimSort.java:146) at java.util.Arrays.sort(Arrays.java:472)请问这是怎么回事呢?奇怪的是,即使出现了这个异常,我的String数组还是被排好序了。。。。
为客户提供快捷安全的数据库 数据恢复服务
踏实的用java.util.Arrays.sort()多好
还是上代码吧,这样子也看不出来是怎么回事。。。
也遇到这个问题了,
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或字符串数字排序Arrays.sort() Comparator的用法 - 开源中国社区
当前访客身份:游客 [
当前位置:
发布于 日 15时,
【随手练】字符串数字排序Arrays.sort()&Comparator的用法
代码片段(1)
1.&[代码][Java]代码&&&&
import java.util.A
public class Arraysort {
public static void main(String[] args) {
String s = "100,10,1,0,15,20";
String[] strArr = s.split(",");
Arrays.sort(strArr, new com());
for(String str : strArr){
System.out.print(str+",");
class com&T& implements Comparator&T& {
public int compare(T o1, T o2) {
int i = Integer.parseInt(String.valueOf(o1));
int j = Integer.parseInt(String.valueOf(o2));
if (i & j) return 1;
if (i & j) return -1;
开源中国-程序员在线工具:
相关的代码(3459)
return i -
2楼:依然菜刀 发表于
用Integer代替int
然后 pare(j)
开源从代码分享开始
VikingZ的其它代码}

我要回帖

更多关于 java中arrays.sort 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信