zoukankan      html  css  js  c++  java
  • java中Comparator的用法

    在java中,如果要对集合对象或数组对象进行排序,需要实现Comparator接口以达到我们想要的目标。

             

    接下来我们模拟下在集合对象中对日期属性进行排序

    一、实体类Step

    package com.ljq.entity;
    
    
    /**
     * 运号单流程
     * 
     * @author Administrator
     * 
     */
    public class Step{
        /** 处理时间 */
        private String acceptTime = "";
        /** 快件所在地点 */
        private String acceptAddress = "";
    
        public Step() {
            super();
        }
    
        public Step(String acceptTime, String acceptAddress) {
            super();
            this.acceptTime = acceptTime;
            this.acceptAddress = acceptAddress;
        }
    
        public String getAcceptTime() {
            return acceptTime;
        }
    
        public void setAcceptTime(String acceptTime) {
            this.acceptTime = acceptTime;
        }
    
        public String getAcceptAddress() {
            return acceptAddress;
        }
    
        public void setAcceptAddress(String acceptAddress) {
            this.acceptAddress = acceptAddress;
        }
    
    }

    二、实现Comparator接口

    package com.ljq.entity;
    
    import java.util.Comparator;
    import java.util.Date;
    
    import com.ljq.util.UtilTool;
    
    /**
     * 对Step类进行排序
     * 
     * @author Administrator
     *
     */
    public class StepComparator implements Comparator<Step>{
    
        /**
         * 如果o1小于o2,返回一个负数;如果o1大于o2,返回一个正数;如果他们相等,则返回0;
         */
        @Override
        public int compare(Step o1, Step o2) {
            Date acceptTime1=UtilTool.strToDate(o1.getAcceptTime(), null);
            Date acceptTime2=UtilTool.strToDate(o2.getAcceptTime(), null);
            
            //对日期字段进行升序,如果欲降序可采用before方法
            if(acceptTime1.after(acceptTime2)) return 1;
            return -1;
        }
    
    }

    三、测试

    package junit;
    
    import java.util.Collection;
    import java.util.Collections;
    import java.util.List;
    
    import org.junit.Test;
    
    
    public class StepComparatorTest {
    
        @Test
        public void sort() throws Exception{
            List<Step> steps=new ArrayList<Step>;
            //对集合对象进行排序
             StepComparator comparator=new StepComparator();
            Collections.sort(steps, comparator);
            if(steps!=null&&steps.size()>0){
                for(Step step:steps){
                   System.out.println(step.getAcceptAddress());
                   System.out.println(step.getAcceptTime());
                }
            }
    
        }
    }
  • 相关阅读:
    RS232串口通信详解
    VS2010 常用的快捷键
    Qt .pro文件详解
    Qt 编译出现 error LNK2019: 无法解析的外部符号
    LabVIEW部分视觉函数中文解说
    NI Vision 介绍
    LabVIEW的优点
    VisionPro和Halcon的详细对比
    康耐视软件VisionPro-max-u与VisionPro-plus-u的区别
    TensorFlow 介绍
  • 原文地址:https://www.cnblogs.com/hd92/p/13553747.html
Copyright © 2011-2022 走看看