JavaNotes:

> a.compareTo(b):

可比较的接口:比较值并返回一个int,它告诉这些值是否小于,等于或大于。

如果你的类对象有一个自然的顺序,实现Comparable< T>接口并定义此方法。具有自然排序的所有Java类实现可比较的< T> – 示例:String,wrapper classes,BigInteger

> compare(a,b):

比较器接口:比较两个对象的值。这被实现为比较器< T>的一部分。接口,典型的用法是定义一个或多个实现这个的小实用程序类,传递给诸如sort()之类的方法,或者通过排序数据结构(如TreeMap和TreeSet)来使用。您可能需要为以下内容创建一个Comparator对象:

>多重比较。提供几种不同的方法来排序东西。例如,您可能希望按名称,ID,年龄,高度对Person类进行排序…您可以为每个类定义一个Comparator,以传递给sort()方法。

>系统类为您无法控制的类提供比较方法。例如,您可以定义一个比较字符串,比较它们的长度。

>策略模式要实现策略模式,您希望将算法表示为可作为参数传递的对象,保存在数据结构等中。

如果你的类对象有一个自然的排序顺序,你可能不需要compare()。

可比

类似对象能够将自身与另一个对象进行比较。

比较器

比较器对象能够比较两个不同的对象。类不是比较它的实例,而是一些其他类的实例。

用例上下文:

可比较的接口

equals方法和==和!=运算符测试等于/不等式,但不提供测试相对值的方法。

一些类(例如,String和具有自然排序的其他类)实现可比较的< T>接口,它定义了compareTo()方法。

您将要实现可比较的< T>在你的类中,如果你想使用它与Collections.sort()或Arrays.sort()方法。

定义比较器对象

您可以创建比较器以对任何类进行任意排序。

例如,String类定义了CASE_INSENSITIVE_ORDER comparator。

两种方法之间的区别可以与以下概念相关:

订购集合:

当一个Collection被排序时,它意味着你可以在一个特定的(非随机)顺序中迭代集合(一个Hashtable没有排序)。

> Comparable是在实现中,从界面不可见,所以当你排序你不真正知道会发生什么。>比较器让您放心,排序将被明确定义。

java的compare to(),java – compare()和compareTo()之间有什么区别?相关推荐

  1. java client是什么_“java-server”和“java-client”之间的真正区别?

    慕村9548890 在早期版本的Java中,最明显的直接区别是分配给-client相对于-server申请.例如,在我的Linux系统上,我得到:$ java -XX:+PrintFlagsFinal ...

  2. 教妹学Java(六):JDK,JRE和JVM之间有什么区别?

    大家好,我是沉默王二.本篇文章通过我和三妹的对话来谈一谈"JDK,JRE 和 JVM 之间的区别".本文付费,为表谢意,附送上个人微信(qing_gee),坑位所剩无几,快加,你有 ...

  3. java obervable_RxJava中Observable,Completable和Single之间有什么区别

    Observable 是通用ReactiveX构建块,它是随时间发送值的事件源 . (因此存在ReactiveX扩展到的每种语言) 简而言之,Observable事件是: onNext *(onCom ...

  4. java servlet 3_java – Servlet 2.5和3之间有什么区别?

    更新 正如一个更新和更明确,这些是servlet 2.5和3之间的主要区别(我不想穷举,我只是提到最有趣的部分): 声明servlet,过滤器和监听器的注释(易于开发) 在servlets 2.5中, ...

  5. java中compare语句的用法,compare的用法_java中 compareTo()的程序代码及用法

    compare的用法与区别? 一.用法 v. (动词) 1.compare的基本意思是"比较,对照",主要用于比较事物的典型特征及其价值,而不在于比较相同与不同. 2.compar ...

  6. java 比较源文件_Beyond Compare比较Java源代码文件的操作流程

    为了可以快速比较出文件不同点,很多亲们已入手了Beyond Compare软件.下面就是小编分享的Beyond Compare比较Java源代码文件的操作流程,感兴趣的朋友赶紧来了解下吧. 打开Bey ...

  7. 使用Java中的equals()和compareTo()方法比较字符串

    Given strings and we have to compare them using equals() and compareTo() method. 给定字符串,我们必须使用equals( ...

  8. java add offer_图解Java中的5大队列!(干货收藏)

    Java 中的队列有很多,例如:ArrayBlockingQueue.LinkedBlockingQueue.PriorityQueue.DelayQueue.SynchronousQueue等,那它 ...

  9. java中treemap_Java TreeMap – Java中的TreeMap

    java中treemap Java TreeMap is one of the Map implementation and it's part of Java Collections framewo ...

最新文章

  1. 从原理到落地,七大维度详解矩阵分解推荐算法
  2. Python环境的安装(Anaconda+Jupyter notebook+Pycharm)
  3. solr索引服务器的配置和solrj集成开发总结
  4. IAR实际使用过程中遇到的问题
  5. Qt quick 编程
  6. 实例讲解Oracle数据库设置默认表空间问题
  7. 图数据库并非要取代区块链,而是让区块链如虎添翼
  8. CKEditor上传视频(java)
  9. wordpress 主题开发
  10. 修改build:gradle版本
  11. 【Python】IDE环境Pycharm运行虚拟环境Django
  12. 我的Python学习笔记(四):动态添加属性和方法
  13. Python的单元测试工具——doctest
  14. c# mysql存储过程 输出参数值_C#获取存储过程返回值和输出参数值的方法
  15. java编程思想之多态理解
  16. 非线性系统 知识梳理
  17. 程序员的护眼Style
  18. 牛客竞赛语法入门班选择结构习题【完结】
  19. 速卖通AE平台+聚石塔+奇门 完整教程V2
  20. Android改变标题栏背景颜色

热门文章

  1. java 数组大数乘法_java – 在数组中查找3个数字的最大乘积
  2. springboot细节挖掘(日志系统)
  3. maven项目在pom.xml中设置JDK编译版本
  4. java中string类面试题_java中String类的面试题大全含答案
  5. 计算机原理寄存器基础知识,微机原理——基础知识及计算机基本组成
  6. 菜鸟python 正则表达式_python基础知识(进阶篇--正则表达式)
  7. hikvision v2.3控件网页demo_网页禁止复制粘贴怎么解决?教你五招轻松搞定
  8. openpyxl 列 插入_openpyxl 基本使用
  9. c语言学习进阶-C语言带命令行参数的文件数据批量计算
  10. mysql1000w数据怎么加索引_给mysql一百万条数据的表添加索引