zoukankan      html  css  js  c++  java
  • Java之Arrays.sort对类排序

    最近在重新学习java基础的部分,意外的发现了一些新鲜事物,比如对于Arrays.sort的使用上,也有了新的认识。

    起初接触到这个方法时,只知道它能对数组进行排序,用int数组简单地进行了一下测试,发现还挺香的。却没想到它也可以对自定义类的数组进行排序,但是,需要按照一定的规则来编写。

    比如,想对下面这个类根据salary进行排序。

    public class Person implements Comparable<Person> {
    
        private Double salary;
    
        public Person(Double salary) {
            this.salary = salary;
        }
    
        public Double getSalary() {
            return salary;
        }
    
        public void setSalary(Double salary) {
            this.salary = salary;
        }
    
        @Override
        public int compareTo(Person o) {
            if (this.salary < o.salary)
                return -1;
            else if (this.salary > o.salary)
                return 2;
            return 0;
        }
    
        @Override
        public String toString() {
            return this.getClass().getSimpleName() + "{" +
                    "salary=" + salary +
                    '}';
        }
    }

    首先,实现接口Comparable,然后具体实现它的compareTo方法,salary相同为0,小于形参对象的salary则返回负数,否则返回正数。

    然后,就可以进行测试了。

    public class Boot {
        public static void main(String[] args) {
            Person[] place = new Person[10];
            place[0] = new Person(12.34);
            place[1] = new Person(12.34);
            place[2] = new Person(16.34);
            place[3] = new Person(10.34);
            place[4] = new Person(12.76);
            place[5] = new Person(23.34);
            place[6] = new Person(45.34);
            place[7] = new Person(2.34);
            place[8] = new Person(3.34);
            place[9] = new Person(12.34);
    
            System.out.println(Arrays.toString(place));
            Arrays.sort(place);
            System.out.println(Arrays.toString(place));
        }
    }

    重写toString方法的目的是为了提升Arrays.toString打印内容的可读性(否则调用默认的toString方法)。

  • 相关阅读:
    淡季买房注意细节 防售楼部“挂羊头卖狗肉”
    买房容易选房难 八大把关教您如何选好房
    socket发送接收字段采用Base64加密笔记
    深入理解JDK、JRE
    Socket读取JSONArray字串越界等相关问题
    android采用MediaPlayer监听EditText实现语音播报手机号码(阿拉伯数字)
    读取properties文件
    关于android客户端在线版本更新的总结(json源码)
    验证码
    base64举例
  • 原文地址:https://www.cnblogs.com/wxdmw/p/13858162.html
Copyright © 2011-2022 走看看