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;
    }

  • 相关阅读:
    Python 函数 切片 迭代 列表生成器
    Python中各种集合 list tuple set dict
    Python学习 常识+基础基础
    《零基础学习Python》01
    原生API实现拖拽上传文件实践
    美团点评面试题小结(测试开发和前端开发)
    从实践的角度理解cookie的几个属性
    一道javascript面试题(闭包与函数柯里化)
    marked插件在线实时解析markdown的web小工具
    Github Page+Bmob实现简单动态功能
  • 原文地址:https://www.cnblogs.com/wuxiang/p/3583270.html
Copyright © 2011-2022 走看看