zoukankan      html  css  js  c++  java
  • Java compare方法和compareTo方法

    Java Comparator接口排序用法,详细介绍可以阅读这个链接的内容:https://www.cnblogs.com/shizhijie/p/7657049.html

    对于 public int compare(Object arg0, Object arg1)的理解

     1 //数组排序
     2 String[] str = new String[5];
     3 Arrays.sort(str, new Comparator<String>() {
     4     @Override
     5     public int compare(String o1, String o2) {
     6         // TODO Auto-generated method stub
     7         return 0;
     8     }
     9 });
    10 //List集合排序
    11 ArrayList<String> list = new ArrayList<String>();
    12 Collections.sort(list, new Comparator<String>() {
    13     @Override
    14     public int compare(String o1, String o2) {
    15         // TODO Auto-generated method stub
    16         return 0;
    17     }
    18 });

    上述代码中重写了Comparator接口中的compare()方法,有两个参数自定义为 o1o2,默认返回 0,可修改方法体中的内容,返回不同的参数值(整型)

    如果返回 1  说明o1 > o2  如 2  1

    如果返回 0  说明o1 = o2   如 cc  cc

    如果返回 -1 说明o1 < o2   如 6  7

    也可以调用compareTo()方法在return时对参数进行比较:

    1 String[] str = new String[5];
    2 Arrays.sort(str, new Comparator<String>() {
    3     @Override
    4     public int compare(String o1, String o2) {
    5         // TODO Auto-generated method stub
    6         return o1.compareTo(o2);
    7     }
    8 });

    compareTo()方法返回值为 int 类型,比较两个值,如:o1.compareTo(o2)。返回1,0,-1同 compare() 方法的参数比较一样。

    比较方法:

    (1) 字符串与对象进行比较

    (2) 按字典顺序比较两个字符串

    比较过程:

    先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至得到最终结果或者其中一个参数结束。

  • 相关阅读:
    JPA的一对多,多对多用法
    pg数据库中时间查询的方式
    DNS消息格式
    Netty之Java堆外内存扫盲贴
    Netty writeAndFlush() 流程与异步
    Netty之有效规避内存泄漏
    TCP状态变迁图
    TCP/IP详解--发送ACK和RST的场景
    TCP/IP详解--连接状态变迁图CLOSE_WAIT
    TCP中异常关闭链接的意义 异常关闭的情况
  • 原文地址:https://www.cnblogs.com/silence-x/p/11320148.html
Copyright © 2011-2022 走看看