比较器CompareTo的使用

  • 源码

      package test;
    
      import java.text.SimpleDateFormat;
    import java.util.Date; public class Test { public static void main(String[] args) {
    String date1 = "2018-08-31";
    String date2 = "2018-09-01";
    int i = date1.compareTo(date2);//日期1大于日期2 应该是1的 原因: 它是先比较对应字符的大小(ASCII码顺序)
    System.out.println(i); //-1 String date3 = "2018-08-29 10:05:10";
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
    String date4 =df.format(new Date());// new Date()为获取当前系统时间
    int i1 = date3.compareTo(date4);
    System.out.println(i1); /*compareTo()的返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,
    * 结束比较,返回他们之间的 差值,如果第一个字符和参数的第一个字符相等,
    * 则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方全比较完,
    * 这时就比较字符的长度.
    * 例: */
    String s1 = "abc";
    String s2 = "abcd";
    String s3 = "abcdfg";
    String s4 = "1bcdfg";
    String s5 = "cdfg";
    System.out.println( s1.compareTo(s2) ); // -1 (前面相等,s1长度小1)
    System.out.println( s1.compareTo(s3) ); // -3 (前面相等,s1长度小3)
    System.out.println( s1.compareTo(s4) ); // 48 ("a"的ASCII码是97,"1"的的ASCII码是49,所以返回48)
    System.out.println( s1.compareTo(s5) ); // -2 ("a"的ASCII码是97,"c"的ASCII码是99,所以返回-2)
    }
    }

比较器CompareTo的使用的更多相关文章

  1. Map集合利用比较器Comparator根据Key和Value的排序

    TreeMap排序 根据Key进行排序 Map的根据key排序需要用到TreeMap对象,因为它是默认按照升序进行输出的,可以使用比较器compareTo对它进行降序排序,Comparator可以对集 ...

  2. TreeSet集合的自然排序与比较器排序、Comparable接口的compareTo()方法

    [自然排序] package com.hxl; public class Student implements Comparable<Student> { private String n ...

  3. 【java】实现Interface java.lang.Comparable<T>接口的int compareTo(T o)方法实现对象数组或链表或集合的排序,和挽救式对象比较器Interface java.util.Comparator<T>

    package 对象比较排序; import java.util.Arrays; class A implements Comparable<A>{ private String name ...

  4. 关于MapReduce中自定义带比较key类、比较器类(二)——初学者从源码查看其原理

    Job类 /**   * Define the comparator that controls    * how the keys are sorted before they   * are pa ...

  5. C# IComparable接口、IComparer接口和CompareTo(Object x)方法、Compare()方法

    在项目中经常会用到字符串比较,但是有时候对字符串的操作比较多,规则各异.比如有的地方我们需要用排序规则,有的地方需要忽略大小写,我们该如何写一个比较容易操作的比较方法呢?重新实现IComparer接口 ...

  6. Scala比较器:Ordered与Ordering

    在项目中,我们常常会遇到排序(或比较)需求,比如:对一个Person类 case class Person(name: String, age: Int) { override def toStrin ...

  7. 对象比较器:Comparable和Comparator

    在进行对象数组排序的过程中需要使用到比较器,比较器有两个:Comparable和Comparator ①.java.lang.Comparable:是在类定义是时候默认实现好的接口,里面提供有一个co ...

  8. 比较器:Compare接口与Comparator接口区别与理解

    一.实现Compare接口与Comparator接口的类,都是为了对象实例数组排序的方便,因为可以直接调用 java.util.Arrays.sort(对象数组名称),可以自定义排序规则. 不同之处: ...

  9. 对象排序,compareTo

    第一个例子 /*为了比较,让自己的类实现Comparable接口,按照自己想要的排序方式重写compareTo *Map只是提供了对键的排序,但是当我们需要对值排序时就的提供我们自己的比较器 这里 只 ...

随机推荐

  1. [CSP-S模拟测试41]题解

    中间咕的几次考试就先咕着吧…… A.夜莺与玫瑰 枚举斜率.只考虑斜率为正且不平行于坐标轴的直线,最后把$ans\times 2$再$+1$即可. 首先肯定需要用$gcd(i,j)==1$确保斜率的唯一 ...

  2. Python3中 if __name__=='__main__'是个什么意思

    在python前期学习中或者在学flask中,if_name_ = ="_main_"经常出现在我们的眼帘中,我们经常会问,这个是个什么玩意儿,它是干什么的? 我们知道,if 语句 ...

  3. windows7+tomcat7+nginx1.11.3 +memcached

    测试的环境是windows7+tomcat7+nginx1.11.3 +memcached 安装方法网上很多就不多说了. 1.session共享需要这几个jar 包  下载地址 http://down ...

  4. 测试过程中bug分类

    测试的核心任务是发现bug.在这之前是分析需求,之后是跟踪bug.跳出具体的项目来看,所有的bug无非是以下五大类. 软件没有实现应该实现的功能:如指定的登录功能. 软件出现了本应该避免的错误:如用户 ...

  5. Java关于Math类的三个取整方法

    0x01 在java的Math类中有三个关于浮点数取整数的方法,分别是ceil (向上取整) floor(向下取整) round(四舍五入) 三个方法 0x02 ceil 向上取整,取整后总是比原来的 ...

  6. Ubuntu16.04搜狗拼音输入法候选栏无法显示中文(英文乱码)

    输入中文时,若候选栏显示英文乱码.无法显示中文,如下图所示,可按如下方式处理: cd ~/.config rm -rf SogouPY* sogou* 然后注销重新登录即可.

  7. python学习笔记:使用freeze命令迁移模块

    使用freeze 给所有模块搬家 导出安装模块的文档pip freeze > my_freeze.txt 或者指定地址pip freeze > e:\my_freeze.txt 在另一个环 ...

  8. JavaScript中如何让图形旋转不会相互影响

    最近在联系JavaScript 二维绘图,经常会用到旋转,前几篇博文也提到过这类问题. 但是我忘记了JavaScript二维绘图中有关旋转最核心的两个方法:save()和restore() 在w3c上 ...

  9. editplus 正则表达式 分组替换

    editplus :zz正则表达式替换 /开头的api+换行符 替换为   /开头的api+空格 \1后有空格 editplus :zz正则表达式替换 行首两个数字+换行符 替换为  行首两个数字+空 ...

  10. requests返回页面乱码

    req=requests.post(domain,params,json=None) req=req.content.decode()