zoukankan      html  css  js  c++  java
  • Arrays.sort()自定义排序

    1. Arrays.sort(T[] a)是对数组元素按字典序进行升序排列

    import java.util.*;
    
    public class Main {
        public static void main(String[] args){
            Integer[] arr = {5,4,7,9,2,12,54,21,1};
            //升序
            Arrays.sort(arr);
            System.out.println(Arrays.toString(arr));
        }   
    }
    //输出:[1, 2, 4, 5, 7, 9, 12, 21, 54]

    2. Arrays.sort(T[] a, Comparator<? Super T> c)用Comparator接口实现自定义排序规则

    import java.util.*;
    
    public class Main {
        public static void main(String[] args){
            Integer[] arr = {5,4,7,9,2,12,54,21,1};
            //降序
            Arrays.sort(arr, new Comparator<Integer>() {
                public int compare(Integer a, Integer b) {
                    return b-a;
                }
            });
            System.out.println(Arrays.toString(arr));    
        }   
    }
    //输出:[54, 21, 12, 9, 7, 5, 4, 2, 1]

    3. Arrays.sort(T[] a, int fromIndex, int toIndex)实现对数组中的一部分进行排序

     对数组a中,index属于[fromIndex, toIndex)的元素进行排序

     同样,Arrays.sort(T[] a, int fromIndex, int toIndex, Comparator<? Super T> c)可实现自定义排序规则

    import java.util.*;
    
    public class Main {
        public static void main(String[] args){
            Integer[] arr = {5,4,7,9,2,12,54,21,1};
            //局部排序-升序
            Arrays.sort(arr, 2, 7);
            System.out.println(Arrays.toString(arr));    
        }   
    }
    //输出:[5, 4, 2, 7, 9, 12, 54, 21, 1]

    java.util.Comparator 接口。要实现里面的函数

    int compare(Object o1, Object o2) 返回一个基本类型的整型,

    返回负数表示o1 小于o2,返回0 表示o1和o2相等,返回正数表示o1大于o2。

    然后,Arrays.sort()会按照compare从大到小的结果排序数组

  • 相关阅读:
    Kinect 开发 —— 硬件设备解剖
    Kinect 开发 —— 引言
    (转)OpenCV 基本知识框架
    OpenCV —— 摄像机模型与标定
    OpenCV —— 跟踪与运动
    OpenCV —— 图像局部与分割(二)
    OpenCV —— 图像局部与部分分割(一)
    OpenCV —— 轮廓
    OpenCV —— 直方图与匹配
    OpenCV —— 图像变换
  • 原文地址:https://www.cnblogs.com/focusonoutput/p/13859188.html
Copyright © 2011-2022 走看看