精华内容
下载资源
问答
  • Java int数组类型数组降序排列方法 前言:使用Java对int数据类型数组降序排列没有C++那样方便但是也是可以简单实现的。 方法一: public class Main { public static void main(String[] args) { int[] num =...

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

    展开全文
  • 方法一: 升序排列代码 import java.util.Arrays; import java.util.Comparator; public class Test{ public static void main(String args[]) { //注意这里的数据类型必须为Integer而不能为int,因为只有Integer...

    方法一:
    升序排列代码

    import java.util.Arrays;
    import java.util.Comparator;
    public class Test{
    	public static void main(String args[]) {
    		//注意这里的数据类型必须为Integer而不能为int,因为只有Integer类继承了Comparator接口而不是int
    		Integer[] _arr = new Integer[] { 5, 3, 1, 2, 4 };
    	        Arrays.sort(_arr, new Comparator<Integer>() {
    				@Override
    				public int compare(Integer o1, Integer o2) {
    					return o1-o2;
    				}
    	        });
    	        for(int number: _arr)
    	            System.out.print(number + " ");
    	        System.out.println();
    	}
    }
    

    输出:1 2 3 4 5
    降序排列代码

    import java.util.Arrays;
    import java.util.Comparator;
    public class Test{
    	public static void main(String args[]) {
    		//注意这里的数据类型必须为Integer而不能为int,因为只有Integer类继承了Comparator接口而不是int
    		Integer[] _arr = new Integer[] { 5, 3, 1, 2, 4 };
    	        Arrays.sort(_arr, new Comparator<Integer>() {
    				@Override
    				public int compare(Integer o1, Integer o2) {
    					return o2-o1;
    				}
    	        });
    	        for(int number: _arr)
    	            System.out.print(number + " ");
    	        System.out.println();
    	}
    }
    

    输出:5 4 3 2 1

    方法二:
    升序排列代码

    public class Test{
    	public static void main(String args[]) {
    		int a[] = new int[]{1,5,6,4,8};
    		//作为中介元素
    		int temp = 0;
    		for (int i = 0; i < a.length; i++) {
    			for (int j = i+1; j < a.length; j++) {
    				if(a[i]>a[j]) {
    					temp = a[j];
    					a[j] = a[i];
    					a[i] = temp;
    				}
    			}
    		}
    		for(int number:a) {
    			System.out.print(number+" ");
    		}
    	}
    }
    

    降序排列代码

    改变一下大小号就可以了

      public class Test{
        	public static void main(String args[]) {
        		int a[] = new int[]{1,5,6,4,8};
        		//作为中介元素
        		int temp = 0;
        		for (int i = 0; i < a.length; i++) {
        			for (int j = i+1; j < a.length; j++) {
        				if(a[i]<a[j]) {
        					temp = a[j];
        					a[j] = a[i];
        					a[i] = temp;
        				}
        			}
        		}
        		for(int number:a) {
        			System.out.print(number+" ");
        		}
        	}
        }
    
    展开全文
  • java 数组排序的方法

    2019-04-03 18:05:29
    从不依靠,从不寻找。非常沉默,非常骄傲。 欢迎大家批评指正!...2):基本数据类型降序排列: 不好意思,查了api发现没有这个操作。你可以将升序排列后的数组再逆置,或者是你可以自定义排序函数。 ...

    从不依靠,从不寻找。非常沉默,非常骄傲。

    欢迎大家批评指正!

    一:Arrays里面的sort函数

    1):基本数据类型升序排列:

    1. Arrays.sort(Object[]);
    2. Arrays.sort(Object[],l,r);给数组[l,r)区间的变量排序

    2):基本数据类型降序排列:

    • 不好意思,查了api发现没有这个操作。你可以将升序排列后的数组再逆置,或者是你可以自定义排序函数。
    • 那么自定义怎样最快呢?建议看   3)自己定义的类 里面的第三段代码

    3)自己定义的类 

    1. 让该类继承Comparable接口,重载compareTo函数。(第一段代码)(parallelSort和sort都可以,有兴趣自己查一下
    2. 让该类继承Comparator接口,重载Compare函数。
    3. 第二第三段代码是利用Comparator接口的两种方法。
    4. 讲一下Comparable接口和Comparator的区别:前者是内部排序,后者是外部排序。啥意思?一个类只要是继承了Comparable接口,那么这个类的对象都是可以有大小的。但是如果如果使用Comparator,表示的是外部排序,这个时候排序只是借用了外部的工具,自定义的这个类创建的对象之间并没有大小关系,只是能通过外部的方法进行排序而已。
    //一:继承Comparable接口,重载compareTo函数
    public class Test {
    	public static void main(String[] argvs) {
    		A a[]=new A[10];
    		//初始化
    		for(int i=0;i<10;i++) {
    			a[i]=new A(i);
    		}
    		System.out.println("排序前的输出:");
    		for(A tp:a) {
    			System.out.print(tp.n+" ");
    		}
    		System.out.println();
    		System.out.println("排序后的输出:");
    		Arrays.sort(a,0,10);
    		for(A tp:a) {
    			System.out.print(tp.n+" ");
    		}
    	}
    }
    //继承Comparable
    class A implements Comparable<A>{
    	public int n;
    	public A(int n){
    		this.n=n;
    	}
    	@Override
    	public int compareTo(A o) {
    		if(this.n<o.n) return 1;
    		else if(this.n>o.n) return -1;
    		else return 0;
    	}
    	
    }
    二:重写Comparator里面的Compare函数,利用匿名类
    public class Test {
    	public static void main(String[] argvs) {
    		A a[]=new A[10];
    		//初始化
    		for(int i=0;i<10;i++) {
    			a[i]=new A(i);
    		}
    		System.out.println("排序前的输出:");//0 1 2 3 4 5 6 7 8 9 
    		for(A tp:a) {
    			System.out.print(tp.n+" ");
    		}
    		System.out.println();
    		System.out.println("排序后的输出:");//9 8 7 6 5 4 3 2 1 0
    		Arrays.sort(a,0,10,new Comparator<A>(){
    			public int compare(A x, A y) {
    				if(x.n>y.n) return -1;
    				else if(x.n<y.n) return 1;
    				else return 0;
    			}
    		});
    		for(A tp:a) {
    			System.out.print(tp.n+" ");
    		}
    	}
    }
    //继承Comparable
    class A{
    	public int n;
    	public A(int n){
    		this.n=n;
    	}
    }
    三:通过一个类重载comparator接口来实现排序
    package Test;
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.Comparator;
    public class Test {
    
    	public static void main(String[] argvs) {
    		A a[]=new A[10];
    		//初始化
    		for(int i=0;i<10;i++) {
    			a[i]=new A(i);
    		}
    		System.out.println("排序前的输出:");
    		for(A tp:a) {
    			System.out.print(tp.n+" ");
    		}
    		//排序前0 1 2 3 4 5 6 7 8 9
    		System.out.println();
    		System.out.println("排序后的输出:");
    		Arrays.sort(a,new mycom());
    		//输出 9 8 7 6 5 4 3 2 1 0
    		for(A tp:a) {
    			System.out.print(tp.n+" ");
    		}
    	}
    }
    
    class mycom implements Comparator<A>{
    
    	@Override
    	public int compare(A o1, A o2) {
    		if(o1.n<o2.n) return 1;
    		else if(o1.n>o2.n) return -1;
    		else return 0;
    	}
    }
    //继承Comparable
    class A{
    	public int n;
    	public A(int n){
    		this.n=n;
    	}
    }

     

     

     

    二:Collectiongs里面的sort函数

    Collections.sort是对一个list进行排序,Arrays.sort是对一个普通数组进行排序。 

    Arrays.sort()在里面元素不超过286的时候用的是快排!超过了之后,先判断数组是不是基本有序,如果不是还用快排(因为数组基本有序的情况下,用快排快退化到O(n^2)),否则用归并排序。Collectiongs.sort()其实就是对Arrays.sort()的调用!

     

    展开全文
  • 方法是Array类中的工具方法,使数组中的元素进行升序排列。导入加载java.util.Arrays;后可以直接使用。二.实例Ⅰ.举例说明 对任意人数的学生成绩进行升序排列。Ⅱ.代码 ①先利用Arrays.sort();方法对指定数组进行...

    一.方法

    Ⅰ.Arrays.sort();方法是Array类中的工具方法,使数组中的元素进行升序排列。导入加载java.util.Arrays;后可以直接使用。

    二.升序实例

    Ⅰ.举例说明
    对任意人数的学生成绩进行升序排列。

    Ⅱ.代码
    ①先利用Arrays.sort();方法对指定数组进行升序排列,然后使用for循环成绩ary[i],最后打印输出。

    import java.util.Scanner;
    import java.util.Arrays;
    public class test4{
    public static void main(String[] args){
    Scanner in=new Scanner(System.in);
    System.out.println(“请输入学生人数:”);
    int people=in.nextInt();
    int[] ary=new int[people];
    for(int i=0;i<=ary.length-1;i++){
    System.out.println(“请输入第”+(i+1)+”名学生的成绩:”);
    ary[i]=in.nextInt();
    }
    Arrays.sort(ary);
    System.out.println(people+”名学生的成绩依次升序排列为:”);
    for(int i=0;i<=ary.length-1;i++){
    System.out.print(ary[i]+”\t”);
    }
    }
    }
    这里写代码片

    ②Arrays.toString();方法输出。API文档的说明:返回指定数组的字符串形式表现。先利用Arrays.sort();方法对指定数组进行升序排列,然后使用
    Arrays.toString();方法打印输出。如果没有排序的话,直接利用Arrays.toString();方法输出的值为[元素1,元素2,....];和数组的值相等。
    ![这里写图片描述](https://img-blog.csdn.net/20170818150800288?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveW93dWtvd3U=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    

    import java.util.Scanner;
    import java.util.Arrays;
    public class test4{
    public static void main(String[] args){
    Scanner in=new Scanner(System.in);
    System.out.println(“请输入学生人数:”);
    int people=in.nextInt();
    int[] ary=new int[people];
    for(int i=0;i<=ary.length-1;i++){
    System.out.println(“请输入第”+(i+1)+”名学生的成绩:”);
    ary[i]=in.nextInt();

        }
            Arrays.sort(ary);               //对数组ary进行升序排列
            System.out.println(people+"名学生的成绩依次升序排列为"+Arrays.toString(ary));                  调用Arrays.toString();将数组a的值转换为字符串并 显示出来
    }
    

    }

    三.降序实例
    Ⅰ.举例说明
    对随机个数字母进行降序排列
    
    Ⅱ.代码
    ①将Arrays.sort();方法升序过的数组元素,根据条件i从大到小的循环输出就可得到降序排序效果。
    

    import java.util.Scanner;
    import java.util.Arrays;

    public class test4{
    public static void main(String[] args){
    Scanner in=new Scanner(System.in);
    System.out.println(“请输入字母个数:”);
    int people=in.nextInt();
    String[] ary=new String[people];
    for(int i=0;i<=ary.length-1;i++){
    System.out.println(“请输入第”+(i+1)+”个字母:”);
    ary[i]=in.next();
    }
    Arrays.sort(ary);
    System.out.println(people+”个字母的依次升序排列为:”);
    for(int i=0;i<=ary.length-1;i++){
    System.out.print(ary[i]+”\t”);
    }
    System.out.println(“\n”+people+”个字母的依次降序排列为:”);
    for(int i=ary.length-1;i>=0;i–){
    System.out.print(ary[i]+”\t”);
    }
    }
    }
    “`

    展开全文
  • Java数组排序

    2018-12-17 13:06:50
    要实现降序排列需要实现Comparator&lt;Integer&gt;接口,重写里面的compare()方法; 代码如下 public static void main(String[] args) { Scanner sc=new Scanner(System.in); Integer[]a=...
  • 通过sort()方法实现升序和降序排列

    千次阅读 2019-04-02 18:14:00
    数组 升序:Arrays.sort(arr); 降序方法一:Arrays.sort(arr,Collections.reverseOrder()); 方法二: package com.yh.sort; import java.util.Arrays; import java.util.Comparator; public class ...
  • 例如:对数组 a[]={12,34,2,1,43,67}分别进行升序和降序排列 public class Arrays { public static void main(String[] args) { // TODO 自动生成的方法存根 int a[] ={12,34,2,1,43,67}; int index;//...
  • java实现从键盘上输入学生成绩,求总分、平均分、最高分、最低分,并升序排列、降序排列数组存储成绩 1、录入,求总分、平均分 2、求最高分、最低分 —打擂台,胜了,站擂台 3、排序(升序、降序) —...
  • 1 题目重述 题目描述:输入n个字符串,降序排列后,按照{x,y,z}格式输出 例如: 输入:3 输入:AK,AS,AC 输出:{AC,AK,AS} ...下面我们就要思考如何实现数组降序排列。我们需要将数组中的每一
  • Java 用 sort 实现对数组的升序和降序排序一、升序二、降序 一、升序 使用 java.util.Arrays 类中的 sort() 方法对数组进行升序分为以下两步: 导入 java.util.Arrays 包。 使用 Arrays.sort(数组名) 语法对数组...
  • Arrays的sort方法可以直接对数据进行升序和降序排列。本人小白,前段时间刚学到sort方法时,看到Arrays操作数组只能升序,使用了很多奇怪的办法来进行降序。例如: import java.util.Arrays; public class ...
  • package 数组练习01; import java.util.Arrays; public class test02 { ///冒泡排序 public static void main(String[] args) { // TODO Auto-generated method stub int [] nums = {12,56,23,45,44,11}...
  • 数组降序5.1.使用list集合以及reverse:先升序排列然后通过倒置,逆序5.2使用Comparator接口,重写sort方法5.3使用Comparator接口,实现对字符串数组的排序6.二维数组7.二维数组-矩阵乘法 1.数组的定义 C语言风格:...
  •  (2)比如int[],double[],char[]等基数据类型的数组,Arrays类之只是提供了默认的升序排列,没有提供相应的降序排列方法。 (3)要对基础类型的数组进行降序排序,需要将这些数组转化为对应的封装类数组,如Integer...
  • Java API对Arrays类的说明是:...(2)比如int[],double[],char[]等基数据类型的数组,Arrays类之只是提供了默认的升序排列,没有提供相应的降序排列方法。(3)要对基础类型的数组进行降序排序,需要将这些数组转化为...
  • Java中的数组排序

    2014-03-31 22:08:00
    Java中的数组排序,一般是利用Arrays.sort(),这个方法是经过优化的快速排序。在Arrays种有多中形式的重载,在这里就不一一列举了。 数组排序的种类: 1.非降序排序, 非升序排序(就排序后数组元素排列的结果而言...
  • Java 语言使用 Arrays 类提供的 sort() 方法来对数组进行排序...假设在数组 scores 中存放了 5 名学生的成绩,现在要实现从低到高排列的功能。在这里使用 Arrays.sort() 方法来实现,具体代码如下: public static void
  • 刚学习Java一个月,对于没东西不是很熟悉,今天在刷题时候时候,需要对多维数组中的一维进行升序/降序排列,思考到这个问题,开始百度学习如何解决!!! 常用类Arrays中有个sort()方法,可以对数组进行默认的升序...
  • 实现将随机字符串中的字符升序排列降序打印 如何进行升序排列?:sort 必须是一个数组,才能使用Arrays.sort方法 String变成数组,用toCharArray 代码: package com.company; import java.util.Arrays; public ...
  • 例如:对数组 a[]={23,3,45,12,34,4,5,78}分别进行升序和降序排列 public class Arrays { public static void main(String[] args) { // TODO 自动生成的方法存根 int a[]={23,3,45,12,34,4,5,78};//创建...
  • 今天在写ACM的时候遇到一个要...Arrays类中的sort()使用的是快速排序法”,但要注意的是只能用于int[],double[],char[]等基数据类型的数组,Arrays类之只是提供了默认的升序排列,没有提供相应的降序排列方法。...
  • 目录 六、数组的排序 七、数组元素查找 六、数组的排序 (1)冒泡排序 ...•冒泡排序法是最基本的排序法...冒泡排序法每一次排序目的是将数值较大(针对于升序排序)或较小(针对于降序排序)的元素移动到数组的...
  • 1.使用冒泡排序对输入的5名学员成绩进行降序排列 2.升序排列一个数组,倒序打印输出。{1,22,33,45,25,18} 2.Arrays类的常用方法 1.equals() 比较两个数组的元素是否完全一致,返回的是true/false 2.Sort() 升序
  • 目录重写Array.sort()方法使用lambda表达式重写Array.sort()方法 ...排序的逻辑是数组中的第一列和第二列都有序排列(升序后者降序) 重写Array.sort()方法 Arrays.sort(people, new Comparator<int[]>() {

空空如也

空空如也

1 2 3 4
收藏数 77
精华内容 30
关键字:

java数组降序排列方法

java 订阅