zoukankan      html  css  js  c++  java
  • List 中对象属性排序

    有几个方法可以实现:让 Student 实现Comparable接口,或是实例化一
    个比较器,
    现在用 Comparator 比较器实例来做一个:ComparableTest.java
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    public class ComparableTest {
    public static void main(String[] args) {
      Comparator<Student> comparator = new Comparator<Student>(){
       public int compare(Student s1, Student s2) {
        //先排年龄
        if(s1.age!=s2.age){
         return s1.age-s2.age;
        }
        else{
         //年龄相同则按姓名排序
         if(!s1.name.equals(s2.name)){
          return s1.name.compareTo(s2.name);
         }
         else{
          //姓名也相同则按学号排序
          return s1.id-s2.id;
         }
        }
       }
      };
      Student stu1 = new Student (1,"zhangsan","male",28,"cs");
      Student stu2 = new Student (2,"lisi","female",19,"cs");
      Student stu3 = new Student (3,"wangwu","male",22,"cs");
      Student stu4 = new Student (4,"zhaoliu","female",17,"cs");
      Student stu5 = new Student (5,"jiaoming","male",22,"cs");
      ArrayList<Student> List = new ArrayList<Student>();
      List.add(stu1);
      List.add(stu2);
      List.add(stu3);
      List.add(stu4);
      List.add(stu5); 
      //这里就会自动根据规则进行排序
      Collections.sort(List,comparator);
      display(List);
    }
    static void display(ArrayList<Student> lst){
      for(Student s:lst)
       System.out.println(s);
    }
    }
    class Student{
    int age;
    int id;
    String gender;
    String name;
    String cs;
    Student(int id,String name,String gender,int age,String cs){
      this.age=age;
      this.name=name;
      this.gender=gender;
      this.id=id;
      this.cs=cs;
    }
    public String toString(){
      return id+"  "+name+"  "+gender+"  "+age+"  "+cs;
    }

  • 相关阅读:
    P4281 [AHOI2008]紧急集合 / 聚会
    P2622 关灯问题II
    CF1092F Tree with Maximum Cost
    10.28记
    威尔逊定理及证明
    CF895C Square Subsets
    洛谷 P5556 圣剑护符
    Multi-nim结论及证明
    AT2667 [AGC017D] Game on Tree
    洛谷 P4643 [国家集训队]阿狸和桃子的游戏
  • 原文地址:https://www.cnblogs.com/wuxiang/p/3583270.html
Copyright © 2011-2022 走看看