`

网上见到一篇compareTo文章较好,收藏之

    博客分类:
  • java
阅读更多
    1、compareTo(Object o)方法是java.lang.Comparable<T>接口中的方法,当需要对某个类的对象进行排序时,该类需要实现Comparable<T>接口的,必须重写public int compareTo(T o)方法,比如MapReduce中Map函数和Reduce函数处理的 <key,value>,其中需要根据key对键值对进行排序,所以,key实现了WritableComparable<T>接口,实现这个接口可同时用于序列化和反序列化。WritableComparable<T>接口(用于序列化和反序列化)是Writable接口和Comparable<T>接口的组合;
    2、compare(Object o1,Object o2)方法是java.util.Comparator<T>接口的方法,它实际上用的是待比较对象的compareTo(Object o)方法。

例:
    public class User implements Comparable<Object>{
    int id;
    String name;
    
    public User(int id,String name){
        this.id = id;
        this.name = name;
    }
    /*
     * Getters and Setters
    */
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
       
    @Override
    public int compareTo(Object o) {
        if(this ==o){
            return 0;            
        }
        else if (o!=null && o instanceof User) {   
            User u = (User) o; 
            if(id<=u.id){
                return -1;
            }else{
            return 1;
        }
    }else{
        return -1;
    }
}
}

 
分享到:
评论

相关推荐

    java CompareTo使用案例

    在Java编程语言中,`compareTo()`方法是`Comparable`接口的一部分,它允许对象进行相互比较。这个方法主要用于排序,特别是当需要自定义排序规则时。本文将深入探讨`compareTo()`方法的使用,包括其基本原理、语法、...

    compareTo用法

    通过本文的介绍,我们可以看到`compareTo`方法在Java中的重要性和其实现细节。正确地实现`compareTo`不仅可以使代码更加高效,还能帮助我们在实际项目中更好地管理和操作数据。希望本文能够帮助读者更好地理解和运用...

    关于重写equals,hashcode以及compareTo方法!

    关于重写equals、hashcode以及compareTo方法! equals()方法是Object类中的一个方法,它用于比较两个对象是否相等。然而,它的默认实现是比较对象的引用(地址),而不是比较对象的实际内容。因此,在某些情况下,...

    Java SE程序 TreeSet类中自定义CompareTo类

    Java SE程序 TreeSet类中自定义CompareTo类Java SE程序 TreeSet类中自定义CompareTo类Java SE程序 TreeSet类中自定义CompareTo类Java SE程序 TreeSet类中自定义CompareTo类Java SE程序 TreeSet类中自定义CompareTo类...

    BigDecimal#compareTo - 副本.md

    BigDecimal#compareTo - 副本

    String类下compareTo()与compare()方法比较

    通过这个示例代码,我们可以看到compareTo()方法和compare()方法的使用场景和区别。compareTo()方法是用于比较两个对象的大小的,而compare()方法是用于比较两个对象的大小,并且需要一个Comparator对象作为参数。

    java源码解析之String类的compareTo(String otherString)方法

    本文将深入探讨String类中的compareTo(String otherString)方法,帮助开发者更好地理解和应用这个关键功能。 一、前言 在Java面试和笔试中,String类经常成为考察的重点,特别是其内部的方法,如compareTo()。这个...

    Java中比较运算符compareTo()、equals()与==的区别及应用总结

    Java中比较运算符compareTo()、equals()与==的区别及应用总结 Java 中的比较运算符有多种,包括 compareTo()、equals() 和 ==,每种运算符都有其特点和应用场景。下面将详细介绍这三种运算符的区别和应用。 ...

    详解java中保持compareTo和equals同步

    在实现 Comparable 接口时,我们需要覆写 compareTo 方法,该方法返回一个整数值,用于表示当前对象和另一个对象的大小关系。如果返回值为 0,则表示两个对象相等;如果返回值为正数,则表示当前对象大于另一个对象...

    一篇讲清楚String、StringBuffer和StringBuild.doc

    一、String 篇 1、String 基本介绍 String 类代表字符串。 Java 程序中的所有字符串文字(例如”abc”)都被实现为此类的实例。String 是用来保存字符串的,比如:“我好帅啊”、“123456”、”hello”这些都是...

    浅谈java中BigDecimal的equals与compareTo的区别

    相比之下,`compareTo`方法则主要关注数值的大小关系,而不是精确度。当调用`compareTo`时,它会先比较两个BigDecimal的符号,然后根据它们的整数部分(intVal)进行比较。如果符号相同,它会通过`matchScale`方法...

    aequum:Aequum 库旨在通过使用 Java 8 lambdas 在 POJO 类上编写 equals、hashCode 和 compareTo 方法时帮助删除一些样板

    ###Responsibilities### Aequum 库旨在通过使用在 POJO 类上编写equals 、 hashCode和compareTo方法时帮助删除一些样板。 请注意,此库依赖于 Java 8。 ###组件初始化指令###要使用此库,调用builder的方法Aequum...

    阿里Java开发完整版手册

    阿里内部Java工程师所遵循的开发规范,涵盖编程规约、单元测试规约、异常日志规约、MySQL规约、工程规约、安全规约等,这是近万名阿里Java技术精英的经验总结. 还包含java基础泛型、反射、注解,java高级特性、设计...

    字符串操作的应用,与文章配套

    本篇文章将深入探讨字符串操作的应用,与文章配套,旨在帮助读者更好地理解和掌握这方面的知识。 首先,我们来了解一下字符串的基础概念。在大多数编程语言中,字符串是由单引号或双引号包围的一系列字符。这些字符...

    数独源码配合文章中一起使用.rar

    数独是一种广受欢迎的逻辑游戏,它通过填充一个9x9的网格,使得每一行、每一列以及每一个小的3x3宫格内的数字1到9都只出现一次。在这个"数独源码配合文章中一起使用.rar"压缩包中,包含的两个Java文件——Game2.java...

    LINQ字符串向datetime 转换时失败的处理方法

    代码如下:from j in system.jhzdwhere j.dwbm.ToString().Trim() == branchcode.ToString().Trim()&& Convert.ToDateTime(j.yearmonth.ToString().Trim()).CompareTo(Convert.ToDateTime(timeFrom)) &gt;= 0&& Convert...

    Java的String类的方法介绍

    Java的String类是Java语言中最基础且常用的类之一,它代表不可变的字符序列,用于处理文本数据。在Java中,String对象一旦被创建,其内容就不能改变。本篇文章将详细介绍Java String类的一些主要构造函数和常用方法...

    Java编程实现提取文章中关键字的方法

    在上述示例中,`WordUtil`类提供了一个静态方法`extract(String article, Integer num)`,它接收一篇文章的字符串和需要返回的关键字数量,然后返回一个包含这些关键字的列表。此方法使用了IKAnalyzer进行分词,并...

    自定义类型实现系统接口的例子(一)

    本篇文章将深入探讨如何通过自定义类型实现四个关键的系统接口:`IComparable`、`IComparer`、`IEnumerable`和`IEnumerator`以及`IDisposable`。这些接口在各种场景下都有广泛的应用,例如数据排序、枚举遍历和资源...

Global site tag (gtag.js) - Google Analytics