java中升序降序怎么表⽰_Javasort()数组排序(升序和降
序)
我们在学习 Java 的过程中肯定会遇到对数组进⾏升序或降序等排序问题,本节主要介绍如何实现 Java 数组的升序和降序。Java 语⾔使⽤Arrays 类提供的 sort() ⽅法来对数组进⾏排序。
升序
使⽤ java.util.Arrays 类中的 sort() ⽅法对数组进⾏升序分为以下两步:
导⼊ java.util.Arrays 包。
使⽤ Arrays.sort(数组名) 语法对数组进⾏排序,排序规则是从⼩到⼤,即升序。
假设在数组 scores 中存放了 5 名学⽣的成绩,现在要实现从低到⾼排列的功能。在这⾥使⽤ Arrays.sort() ⽅法来实现,具体代码如下:
public static void main(String[] args) {undefined
// 定义含有5个元素的数组
double[] scores = new double[] { 78, 45, 85, 97, 87 };
System.out.println("排序前数组内容如下:");
// 对scores数组进⾏循环遍历
for (int i = 0; i < scores.length; i++) {undefined
System.out.print(scores[i] + "\t");
}
System.out.println("\n排序后的数组内容如下:");
// 对数组进⾏排序
Arrays.sort(scores);
// 遍历排序后的数组
for (int j = 0; j < scores.length; j++) {undefined
System.out.print(scores[j] + "\t");
}
}
如上述代码所⽰,要对⼀个数组进⾏升序排列,只需要调⽤ 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)利⽤ verseOrder() ⽅法(Collections 是⼀个包装类。⼤家可以学习《Java Collections类》⼀节详细了解):
public static void main(String[] args) {undefined
Integer[] a = { 9, 8, 7, 2, 3, 4, 1, 0, 6, 5 }; // 数组类型为Integer
Arrays.sort(a, verseOrder());
for (int arr : a) {undefined
System.out.print(arr + " ");
}
}
输出结果如下:
9 8 7 6 5 4 3 2 1 0
2)实现 Comparator 接⼝的复写 compare() ⽅法,代码如下:
public class Test {undefined
public static void main(String[] args) {undefined
/*
* 注意,要想改变默认的排列顺序,不能使⽤基本类型(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 arr : a) {undefined
System.out.print(arr + " ");
}
}
}
// 实现Comparator接⼝
class MyComparator implements Comparator {undefined
@Override
public int compare(Integer o1, Integer o2) {undefined
/*
* 如果o1⼩于o2,我们就返回正值,如果o1⼤于o2我们就返回负值, 这样颠倒⼀下,就可以实现降序排序了,反之即可⾃定义升序排序了*/
return o2 - o1;
}
}
java怎么编写输出结果如下所⽰。
9 8 7 6 5 4 3 2 1 0
注意:使⽤以上两种⽅法时,数组必须是包装类型,否则会编译不通过。
在 Java 中实现数组排序的⽅式很多,除了利⽤以上的⼏种⽅法外,还可以编写⾃定义⽅法来实现⾃⼰的排序算法,有兴趣的读者可以尝试编写。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。