JAVA代码进行排序以及模糊查询

/**.
 */

package com.encdata.lihao;

import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**.
 *
 * @author admin
 *
 */
public class ListMapSort {
  
  static class Task implements Comparator {
    
    private String taskId;
    
    private String taksName;
    
    /**.
     * @return the taksName
     */
    public String getTaksName() {
      return taksName;
    }

    /**.
     * @param taksName the taksName to set
     */
    public void setTaksName(String taksName) {
      this.taksName = taksName;
    }

    /**.
     * @return the taskId
     */
    public String getTaskId() {
      return taskId;
    }

    /**.
     * @param taskId the taskId to set
     */
    public void setTaskId(String taskId) {
      this.taskId = taskId;
    }

    /* (non-Javadoc)
     * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
     */
    @Override
    public int compare(Object o1, Object o2) {
      return 0;
    } 
    
    
    
  }
  
  public static void main(String[] args) {
    
    List<Task> mapList = new ArrayList<Task>();
    
    Task task1 = new Task();
    task1.setTaskId("101");
    task1.setTaksName("ABC");
    
    Task task2 = new Task();
    task2.setTaskId("98");
    task2.setTaksName("BCD");
    
    Task task3 = new Task();
    task3.setTaskId("210");
    task3.setTaksName("CDE");
    
    Task task4 = new Task();
    task4.setTaskId("201");
    task4.setTaksName("DEF");
    
    mapList.add(task1);
    mapList.add(task2);
    mapList.add(task3);
    mapList.add(task4);
    
    System.out.println("排序前");
    for (Task task : mapList) {
      System.out.println(task.getTaskId()+task.getTaksName());
    }
    
    Collections.sort(mapList, new Comparator<Task>(){  
      
        
     /**
       *  int compare(Student o1, Student o2) 返回一个基本类型的整型,  
       * 返回负数表示:o1 小于o2,  
       * 返回0 表示:o1和o2相等,  
       * 返回正数表示:o1大于o2。 
       */ 
         
      public int compare(Task o1, Task o2) {
        
        Integer o1taskId = Integer.valueOf(o1.getTaskId());
        
        Integer o2taskId = Integer.valueOf(o2.getTaskId());
        
          //按照任务ID进行降序排列  
          if(o1taskId > o2taskId){  
              return -1;  
          }  
          if(o1taskId == o2taskId){  
              return 0;  
          }  
          return 1;  
      }  
    }); 
    
    String condition = "D";
    
    Pattern pattern = Pattern.compile(condition);
    
    List<Task> mapList2 = new ArrayList<>();
    
    List<Task> mapList3 = new ArrayList<>();
    
    for (int i = 0; i < mapList.size(); i++) {
      Matcher matcher = pattern.matcher((mapList.get(i)).getTaksName());
      if (matcher.find()) {
        mapList2.add(mapList.get(i));
      }
    }
    
    for (int i = 0; i < mapList.size(); i++) {
      
      if (mapList.get(i).getTaksName().contains("D")) {
        mapList3.add(mapList.get(i));
      }

    }
    
    System.out.println("排序后");
    for (Task task : mapList2) {
      System.out.println(task.getTaskId()+task.getTaksName());
    }
    
    System.out.println("排序2后");
    for (Task task : mapList3) {
      System.out.println(task.getTaskId()+task.getTaksName());
    }
    
    
  }
  
  

}
原文地址:https://www.cnblogs.com/lh-masteryi/p/9088155.html