java的compare to(),java – compare()和compareTo()之间有什么区别?
从
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()之间有什么区别?相关推荐
- java client是什么_“java-server”和“java-client”之间的真正区别?
慕村9548890 在早期版本的Java中,最明显的直接区别是分配给-client相对于-server申请.例如,在我的Linux系统上,我得到:$ java -XX:+PrintFlagsFinal ...
- 教妹学Java(六):JDK,JRE和JVM之间有什么区别?
大家好,我是沉默王二.本篇文章通过我和三妹的对话来谈一谈"JDK,JRE 和 JVM 之间的区别".本文付费,为表谢意,附送上个人微信(qing_gee),坑位所剩无几,快加,你有 ...
- java obervable_RxJava中Observable,Completable和Single之间有什么区别
Observable 是通用ReactiveX构建块,它是随时间发送值的事件源 . (因此存在ReactiveX扩展到的每种语言) 简而言之,Observable事件是: onNext *(onCom ...
- java servlet 3_java – Servlet 2.5和3之间有什么区别?
更新 正如一个更新和更明确,这些是servlet 2.5和3之间的主要区别(我不想穷举,我只是提到最有趣的部分): 声明servlet,过滤器和监听器的注释(易于开发) 在servlets 2.5中, ...
- java中compare语句的用法,compare的用法_java中 compareTo()的程序代码及用法
compare的用法与区别? 一.用法 v. (动词) 1.compare的基本意思是"比较,对照",主要用于比较事物的典型特征及其价值,而不在于比较相同与不同. 2.compar ...
- java 比较源文件_Beyond Compare比较Java源代码文件的操作流程
为了可以快速比较出文件不同点,很多亲们已入手了Beyond Compare软件.下面就是小编分享的Beyond Compare比较Java源代码文件的操作流程,感兴趣的朋友赶紧来了解下吧. 打开Bey ...
- 使用Java中的equals()和compareTo()方法比较字符串
Given strings and we have to compare them using equals() and compareTo() method. 给定字符串,我们必须使用equals( ...
- java add offer_图解Java中的5大队列!(干货收藏)
Java 中的队列有很多,例如:ArrayBlockingQueue.LinkedBlockingQueue.PriorityQueue.DelayQueue.SynchronousQueue等,那它 ...
- java中treemap_Java TreeMap – Java中的TreeMap
java中treemap Java TreeMap is one of the Map implementation and it's part of Java Collections framewo ...
最新文章
- 从原理到落地,七大维度详解矩阵分解推荐算法
- Python环境的安装(Anaconda+Jupyter notebook+Pycharm)
- solr索引服务器的配置和solrj集成开发总结
- IAR实际使用过程中遇到的问题
- Qt quick 编程
- 实例讲解Oracle数据库设置默认表空间问题
- 图数据库并非要取代区块链,而是让区块链如虎添翼
- CKEditor上传视频(java)
- wordpress 主题开发
- 修改build:gradle版本
- 【Python】IDE环境Pycharm运行虚拟环境Django
- 我的Python学习笔记(四):动态添加属性和方法
- Python的单元测试工具——doctest
- c# mysql存储过程 输出参数值_C#获取存储过程返回值和输出参数值的方法
- java编程思想之多态理解
- 非线性系统 知识梳理
- 程序员的护眼Style
- 牛客竞赛语法入门班选择结构习题【完结】
- 速卖通AE平台+聚石塔+奇门 完整教程V2
- Android改变标题栏背景颜色
热门文章
- java 数组大数乘法_java – 在数组中查找3个数字的最大乘积
- springboot细节挖掘(日志系统)
- maven项目在pom.xml中设置JDK编译版本
- java中string类面试题_java中String类的面试题大全含答案
- 计算机原理寄存器基础知识,微机原理——基础知识及计算机基本组成
- 菜鸟python 正则表达式_python基础知识(进阶篇--正则表达式)
- hikvision v2.3控件网页demo_网页禁止复制粘贴怎么解决?教你五招轻松搞定
- openpyxl 列 插入_openpyxl 基本使用
- c语言学习进阶-C语言带命令行参数的文件数据批量计算
- mysql1000w数据怎么加索引_给mysql一百万条数据的表添加索引