zoukankan      html  css  js  c++  java
  • 定制对ArrayList的sort方法的自定义排序

    java中的ArrayList需要通过collections类的sort方法来进行排序

    如果想自定义排序方式则需要有类来实现Comparator接口并重写compare方法

    调用sort方法时将ArrayList对象与实现Commparator接口的类的对象作为参数

    示例:

    // 外部类的方式

    import java.util.ArrayList; import java.util.Collections;

    import java.util.Comparator; import java.util.List;

    public class Test {  public static void main(String[] args) {

      Student zlj = new Student("丁晓宇", 21);   

    Student dxy = new Student("赵四", 22);   

    Student cjc = new Student("张三", 11);   

    Student lgc = new Student("刘武", 19);

      List<Student> studentList = new ArrayList<Student>();   

      studentList.add(zlj);   

     studentList.add(dxy);  

     studentList.add(cjc);  

     studentList.add(lgc);

      Collections.sort(studentList, new SortByAge());

      for (Student student : studentList) {   

     System.out.println(student.getName() + " / " + student.getAge());   

    }  

     System.out.println("  =  ");  

     Collections.sort(studentList, new SortByName());  

     for (Student student : studentList) {    

    System.out.println(student.getName() + " / " + student.getAge());   

    }  } }

    class SortByAge implements Comparator {  

    public int compare(Object o1, Object o2) {  

     Student s1 = (Student) o1;   Student s2 = (Student) o2;  

     if (s1.getAge() > s2.getAge())    return 1;   return 0;  } }

    class SortByName implements Comparator {  

    public int compare(Object o1, Object o2) {   

    Student s1 = (Student) o1;  

     Student s2 = (Student) o2;  

     return s1.getName().compareTo(s2.getName());  } }

    //匿名内部类的方式

    //按照受益人级别进行排序   

    Collections.sort(beneficiarys,new Comparator(){

       @Override   

     public int compare(Object o1, Object o2) {    

     Beneficiary s1 = (Beneficiary) o1;     

    Beneficiary s2 = (Beneficiary) o2;     

    if (Integer.parseInt(s1.getBeneficiaryOrder()) > Integer.parseInt(s2.getBeneficiaryOrder()))     

     return 1;     

    return 0;      

     }    });

  • 相关阅读:
    Maven_自动化构建和构建环节
    Maven_运行时环境
    构建的概念
    Maven_真的需要吗?
    28)拷贝构造函数
    27)构造和析构函数
    26)多文件形式编写类步骤
    25)类的封装
    24)类
    23)函数重载和函数指针
  • 原文地址:https://www.cnblogs.com/vinplezhang/p/3776182.html
Copyright © 2011-2022 走看看