Java int数据类型数组降序排列的方法

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类型数组的降序排列,其他数据类型数组的降序排列方法差不多,欢迎大家在下面留言表达自己的观点和想法,文章出现错误请大家积极指正,谢谢大家。

  • 11
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值