zoukankan      html  css  js  c++  java
  • compareto方法

    Comparable接口中的compareto方法:

     public int compareTo(T o);

    返回值含义

    小于零:此实例按排序顺序在 obj 前面。

    零:此实例与 obj 在排序顺序中出现的位置相同。

    大于零:此实例按排序顺序在 obj 后面。

    String类中的compareto方法:

    public int compareTo(String anotherString) {
        int len1 = count;
        int len2 = anotherString.count;
        //获取到两个字符串的较短的长度
        int n = Math.min(len1, len2);
        char v1[] = value;
        char v2[] = anotherString.value;
        int i = offset;
        int j = anotherString.offset;
        if (i == j) {
            int k = i;
            int lim = n + i;
            while (k < lim) {
                char c1 = v1[k];
                char c2 = v2[k];
                //如果两个字符的ASC不相同,则直接返回
         if (c1 != c2) {
                    return c1 - c2;
                }
                k++;
            }
        } else {
            while (n-- != 0) { //长度不同的情况:将前面长度相同的字母进行比较,如果不同返回ASCII码的差值;如果都相同,直接求长度的差值
               char c1 = v1[i++];
               char c2 = v2[j++];
                 //如果两个字符的ASC不相同,则直接返回
               if (c1 != c2) {
                   return c1 - c2;
               }
            }
        }
        //如果都一样,返回两个字符串的长度查
        return len1 - len2;
        }

    "abcd".compareTo("adef")== -2

    "abc".compareTo("abcdef")== -3

    "abc".compareTo("abc") == 0

    重写Comparable接口compareto方法

    @Override
    public int compareTo(Object o){
        if(o instanceof Student){
            Student s = (Student)o;
            //return this.name.compareTo(s.name);//按name属性从低到高排序
            return this.id - s.id; //按id属性从小到大排序
        }
        return 0;
    }
  • 相关阅读:
    三角函数都快忘光了
    Windows 10 LTSC 2019(1809) WSL 安装 CentOS 7
    随手写了个京东发票助手
    ASP 封装基本身份认证( HTTP Basic Authenticate)辅助类
    WebBrowser中打开新页面
    将QT窗口嵌入到WinForm窗口
    [摘录]如何按需前端显示指定的窗口
    实现TabControl 选项卡首个标签缩进的方法
    玩转时间操作
    Java 并发包中的高级同步工具
  • 原文地址:https://www.cnblogs.com/yjtm53/p/4149260.html
Copyright © 2011-2022 走看看