• 实现Comparator 对List<?>进行排序


    首选需要有个Entity类 ,里面有属性有方法

     1 package demo;
     2 
     3 public class Entity {
     4     private String empNo ; 
     5     private String empName ; 
     6     private float sal ; 
     7 
     8     public String getEmpNo() { 
     9     return empNo; 
    10     } 
    11     public void setEmpNo(String empNo) { 
    12     this.empNo = empNo; 
    13     } 
    14     public String getEmpName() { 
    15     return empName; 
    16     } 
    17     public void setEmpName(String empName) { 
    18     this.empName = empName; 
    19     } 
    20     public float getSal() { 
    21     return sal; 
    22     } 
    23     public void setSal(float sal) { 
    24     this.sal = sal; 
    25     } 
    26 
    27     public Entity(String empNo,String empName,float sal){ 
    28     this.empNo = empNo ; 
    29     this.empName = empName ; 
    30     this.sal = sal ; 
    31     } 
    32     
    33 }

    现在我想对 empName 这个属性进行排序

    此时需要MyComparator 实现Comparator<Object>

     1 package demo;
     2 
     3 import java.util.Comparator;
     4 
     5 public class MyComparator implements Comparator<Object>{ 
     6 
     7     public int compare(Object o1,Object o2) { 
     8         Entity s1 = (Entity) o1;
     9         Entity s2 = (Entity) o2;
    10 //        return (int) (s1.getSal() - s2.getSal()); // 按Id排
    11         return s1.getEmpName().compareTo(s2.getEmpName()); // 按姓名排
    12     } 
    13 } 

    测试类如下

     1 package demo;
     2 
     3 import java.util.ArrayList;
     4 import java.util.Collections;
     5 
     6 public class test {
     7     public static void main(String[] args) {
     8          ArrayList<Entity> list = new ArrayList<Entity>();
     9         Entity e1 = new Entity(null, null, 0);
    10         Entity e2 = new Entity(null, null, 0);
    11         Entity e3 = new Entity(null, null, 0);
    12         Entity e4 = new Entity(null, null, 0);
    13         e1.setEmpName("TY2014000002");
    14         String s1= e1.getEmpName();
    15         s1 = s1.substring(6);
    16         System.out.println(s1+"+++++++++");
    17         e2.setEmpName("TY2016000009");
    18         e3.setEmpName("TY2016000003");
    19         e4.setEmpName("TY2014000001");
    20         list.add(e1);
    21         list.add(e2);
    22         list.add(e3);
    23         list.add(e4);
    24         for(int i=0;i<list.size();i++){ 
    25             Entity emp = (Entity)list.get(i) ; 
    26             System.out.println(emp.getEmpName()); 
    27         } 
    28         System.out.println("-------------------");
    29         MyComparator mc = new MyComparator() ; 
    30         Collections.sort(list, mc) ; 
    31         for(int i=0;i<list.size();i++){ 
    32             Entity emp = (Entity)list.get(i) ; 
    33             System.out.println(emp.getEmpName()); 
    34         }  
    35      }
    36 }

  • 相关阅读:
    CentOS7----Linux Root忘记,进入救援模式更改密码(两种方法!)
    Linux/CentOS7install PackageError: Loaded plugins: fastestmirror
    LinuxCentOSamba7关闭SELinux重新启动失败出现:Failed to load SElinux policu freezing
    Github Page + Hexo 搭建个人博客
    Selenium的使用
    Linux下使用Selenium进行自动化测试
    Python学习-网络编程
    Python学习-多线程和多进程
    Python学习-从面向对象开始
    Linux安装Jupyter并且远程访问
  • 原文地址:https://www.cnblogs.com/ScarecrowAnBird/p/7356498.html
Copyright © 2020-2023  润新知