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

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

一、实体类Step

package com.ljq.entity;

/**
*
*/
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());
}
} }
}

java中Comparator的用法 -- 实现集合和数组排序的更多相关文章

  1. Java中的Socket用法

    转发链接:https://www.cnblogs.com/zhanglei93/p/6217384.html (1)Java中的Socket用法 Java中的Socket分为普通的Socket和Nio ...

  2. java中this的用法?

    2008-07-28 08:10cztx5479 | 分类:JAVA相关 | 浏览4533次 java中this的用法? import java.awt.*; import java.awt.even ...

  3. 转:十八、java中this的用法

    http://blog.csdn.net/liujun13579/article/details/7732443 我知道很多朋友都和我一样:在JAVA程序中似乎经常见到“this”,自己也偶尔用到它, ...

  4. Java 中 synchronized的用法详解(四种用法)

    Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码.本文给大家介绍java中 synchronized的用法,对本文感兴趣的朋友一起看看吧 ...

  5. java成神之——java中string的用法

    java中String的用法 String基本用法 String分割 String拼接 String截取 String换行符和format格式化 String反转字符串和去除空白字符 String获取 ...

  6. java中stringBuilder的用法

    java中stringBuilder的用法 String对象是不可改变的.每次使用 System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.在需 ...

  7. 第一篇 网站基础知识 第4章 Java中Socket的用法

    第4章 Java中Socket的用法 4.1 普通Socket的用法 Java中的网络通信是通过Socket实现的,Socket分为ServetSocket和Socket两大类,ServetSocke ...

  8. Java 中Comparator 的使用,实现集合排序

    目标:实现对Person 对象的年龄,从小到大排序 1.实现排序 package com.app; import java.util.ArrayList; import java.util.Colle ...

  9. 【java】Comparator的用法

    文章转载自: http://blog.csdn.net/u012250875/article/details/55126531 1.为什么写? comparator 是javase中的接口,位于jav ...

随机推荐

  1. 总结this指向问题

    在全局上下文中,this指向全局. 在函数内部,this的值取决于函数被调用的方式. 当函数简单调用时(函数在全局上下文中),this指向window(严格模式下指向undefined) call 或 ...

  2. win7 linux双系统删除linux

    本文内容收集自互联网,共两篇,中间以“分界线”进行分割. linux的卸载 一.win7与linux都使用grub来引导 卸载:不能直接删除ubuntu分区,这样会造成win7也启动不了 正确方法: ...

  3. 项目启动报错:No suitable driver found for jdbc:oracle:thin:@192.168.7.146:1521:oracle

    No suitable driver found for jdbc:oracle:thin:@192.168.7.146:1521:oracle 这个错误的原因主要有以下几方面的原因: 1. url配 ...

  4. Linux命令-网络命令:traceroute

    首先需要设置VM里面的linux系统能够上网.菜单项->虚拟机->设置,选择NAT模式 菜单项->编辑->虚拟网络编辑器->VMnet8 NAT模式->NAT设置, ...

  5. js Array.prototype.join.call(arguments,",") 理解

    prototype 属性使您有能力向对象添加属性和方法. join() 方法:把数组的所有元素放入一个字符串.元素通过指定的分隔符进行分隔. call() 方法可以用来代替另一个对象调用一个方法. A ...

  6. Asp.Net MVC中递归死循环问题

    在写代码的时候,很欢乐地发现报错了. An unhandled exception of type 'System.StackOverflowException' occurred in mscorl ...

  7. 转: python 利用EMQ实现消费者和生产者模型

    消费者 """ 测试emq-消费者 @author me """ import paho.mqtt.client as mqtt impor ...

  8. 在云服务器上部署node.js服务器

    本文档介绍腾讯云·万象优图服务端nodejs的部署和集成,搭建一个nodejs+nginx为基础,对web端或者移动端提供http签名接口服务的例子程序.注意:本文档只是简单的示例,展示了服务端为终端 ...

  9. springboot服务器部署方式

    1.利用maven打包 maven project --> clean --> install 2.云服务器上启动 nohup java -jar /xxx/xxx/xxx.jar > ...

  10. Mac上的学习神器:Marginnote

    https://marginnote.com/?lang=zh-hans 技巧1:合并 多选编辑 - 按顺序选择多个块 - 左下角菜单 - 合并 技巧2:管理顺序 双击图片并且按住不放,即可拖拽顺序 ...