博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法-比较数据
阅读量:6280 次
发布时间:2019-06-22

本文共 1233 字,大约阅读时间需要 4 分钟。

应用场景

1.比较2个数据的大小

比较大小
2.比较多个数据的大小
排序

比较2个数据的大小

1.比较数值

8个基本数据类型,除了char和boolean,其他6个都是比较数值的大小。

如何比较呢?一减就知道了,比较2个数值的算法就是做减法。

2.比较字符和字符串

1)字符char
字符是按字典顺序进行比较的。

具体代码实现是比较字符的unicode编码。字符的unicode编码就是按字典顺序进行编码的,小写字母abcd...排在前面,大写字母ABCD...排在后面。

比较2个字符的算法,就是比较字符的unicode编码。

2)字符串String

和比较字符的大小一样,只不过比较字符串的算法,是先比较第一个字符的大小,然后依次比较后面字符的大小。

比较多个数据的大小

要对多个数据的大小进行比较,一般就是排序咯。

排序的算法有很多种,不过不管是哪一种算法,相同点都是基于每两个数据、每两个数据比较的。

java是如何比较数据的

1.基本数据类型

6种数值类和char,都是用if和操作符(大于、小于、等于)来实现的。

2.类

1.6种数值类型的包装类  2.基本数据类型char的包装类Character  3.字符串类String  4.自定义类

以上4种不同类型的类,都是通过实现比较接口Comparable来实现比较功能的。比较接口Comparable,只有一个比较方法compareTo,任何类想要实现比较的功能,必须实现比较接口的比较方法。

1、2、3里的类,都实现了比较接口的比较方法。

我们自己写的类,如果想要实现比较的功能,也必须实现比较接口的比较方法。

3.排序

工具类Collections和Arrays的排序方法sort,采用的算法是合并排序,在排序的过程当中进行两两比较时,就是利用每个类的比较方法进行比较的。

java比较类数据的另一种方法

在java里,提供了2种方法来比较类数据:

1.实现比较接口Comparable的比较方法
待比较的数据类,实现比较接口的比较方法。正如上面介绍的那样。

比较接口Comparable是可比较的意思,如果一个类实现了可比较接口,那么这个类就是可比较的。

对于所有有比较需求的类,都应该去实现这个接口。

2.实现比较器接口Comparator的比较方法
如果一个类有比较的需求,并且只按类的一个字段进行比较(比如,日期字段),那么可以实现比较接口Comparable。当前,也可以实现比较器接口,只不过多了个类而已。这2种方法没有任何区别。

如果一个类有比较的需求,并且可能需要按多个字段进行比较(比如,日期字段、名字字段、年龄字段等),这个时候,实现比较器接口比较好,具体来说,就是新建一个自定义比较器类(比如,StudentSortByDate、StudentSortByName、StudentSortByAge等)实现比较器接口。

比较大小compareTo和比较相等equals

参考

转载地址:http://osfva.baihongyu.com/

你可能感兴趣的文章
【Docker学习笔记(四)】通过Nginx镜像快速搭建静态网站
查看>>
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
查看>>
<转>云主机配置OpenStack使用spice的方法
查看>>
java jvm GC 各个区内存参数设置
查看>>
[使用帮助] PHPCMS V9内容模块PC标签调用说明
查看>>
关于FreeBSD的CVSROOT的配置
查看>>
基于RBAC权限管理
查看>>
基于Internet的软件工程策略
查看>>
数学公式的英语读法
查看>>
留德十年
查看>>
迷人的卡耐基说话术
查看>>
PHP导出table为xls出现乱码解决方法
查看>>
PHP问题 —— 丢失SESSION
查看>>
Java中Object类的equals()和hashCode()方法深入解析
查看>>
数据库
查看>>
Vue------第二天(计算属性、侦听器、绑定Class、绑定Style)
查看>>
dojo.mixin(混合进)、dojo.extend、dojo.declare
查看>>
Python 数据类型
查看>>
iOS--环信集成并修改头像和昵称(需要自己的服务器)
查看>>
PHP版微信权限验证配置,音频文件下载,FFmpeg转码,上传OSS和删除转存服务器本地文件...
查看>>