Java int数组类型数组降序排列的方法
前言:使用Java对int数据类型数组降序排列没有C++那样方便但是也是可以简单实现的。
1.方法一:
public class Main {
public static void main(String[] args) {
int[] num = {1, 9, 2, 6, 5}; //定义一个int数组
for(int i = 0; i < num.length; i++) {
System.out.print(num[i] + " "); //输出原来的数组
}
System.out.println();
Arrays.sort(num); //调用Arrays.sort()方法, 原数组升序排列。
for(int i = 0; i < num.length / 2; i++) { //原数组元素交换实现降序排列
int temp = num[i];
num[i] = num[num.length - 1 - i];
num[num.length - 1 - i] = temp;
}
for(int i = 0; i < num.length; i++) {
System.out.print(num[i] + " "); //输出降序排列的数组
}
}
}
运行结果:
1 9 2 6 5
9 6 5 2 1
代码截图:
2. 方法二:
import java.util.Arrays;
import java.util.stream.IntStream;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
int[] num = {1, 9, 2, 6, 5}; //定义一个int数组
for(int i = 0; i < num.length; i++) {
System.out.print(num[i] + " "); //输出原来的数组
}
System.out.println();
Integer[] Integernum = Arrays.stream(num).boxed().toArray(Integer[]::new); //这一行代码和下面几行代码实现的功能相同
/*//将int数组转换为Integer数组
IntStream stream = Arrays.stream(num); //将int数组转换为数值流
Stream<Integer> integerStream = stream.boxed(); //将数值流中的元素全部装箱, 转换为流, int转为Integer。
Integer[] Integernum = integerStream.toArray(Integer[]::new); //将流转换为Integer数组*/
Arrays.sort(Integernum, (a, b)->b - a); //使用lambda表达式对数组降序排列, 这一行代码和下面几行代码实现的功能相同。
/*Arrays.sort(Integernum, (a, b)->{
return b - a;
});*/
for(int i = 0; i < Integernum.length; i++) {
System.out.print(Integernum[i] + " "); //输出降序排列的数组
}
System.out.println();
}
}
运行结果:
1 9 2 6 5
9 6 5 2 1
代码截图:
3.方法三:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] num = {1, 9, 2, 6, 5}; //定义一个数组
for(int i = 0; i < num.length; i++) {
System.out.print(num[i] + " "); //输出原来的数组
}
System.out.println();
reverseOrderQuickSort(num, 0, num.length - 1); //调用降序排列的函数
for(int i = 0; i < num.length; i++) {
System.out.print(num[i] + " "); //输出降序排列的数组
}
}
private static void reverseOrderQuickSort(int[] num, int left, int right) { //降序快速排序
if(left < right) {
int i = left, j = right, n = num[left];
while(i < j) {
while (i < j && num[j] <= n) j--;
if(i < j) num[i++] = num[j];
while (i < j && num[i] > n) i++;
if(i < j) num[j--] = num[i];
}
num[i] = n;
reverseOrderQuickSort(num, left, i - 1); //数组左边的数字和数组右边的数字分别降序排序。
reverseOrderQuickSort(num, i + 1, right);
}
}
}
运行结果:
1 9 2 6 5
9 6 5 2 1
代码截图:
总结:代码实现的是int类型数组的降序排列,其他数据类型数组的降序排列方法差不多,欢迎大家在下面留言表达自己的观点和想法,文章出现错误请大家积极指正,谢谢大家。