算法-比较数据

应用场景

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

比较2个数据的大小

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

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

2.比较字符和字符串
1)字符char
字符是按字典顺序进行比较的。工具

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

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

2)字符串String
和比较字符的大小同样,只不过比较字符串的算法,是先比较第一个字符的大小,而后依次比较后面字符的大小。htm

比较多个数据的大小

要对多个数据的大小进行比较,通常就是排序咯。
排序的算法有不少种,不过无论是哪种算法,相同点都是基于每两个数据、每两个数据比较的。blog

java是如何比较数据的

1.基本数据类型
6种数值类和char,都是用if和操做符(大于、小于、等于)来实现的。排序

2.类接口

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

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

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

咱们本身写的类,若是想要实现比较的功能,也必须实现比较接口的比较方法。

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

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

在java里,提供了2种方法来比较类数据:
1.实现比较接口Comparable的比较方法
待比较的数据类,实现比较接口的比较方法。正如上面介绍的那样。

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

对于全部有比较需求的类,都应该去实现这个接口。
2.实现比较器接口Comparator的比较方法
若是一个类有比较的需求,而且只按类的一个字段进行比较(好比,日期字段),那么能够实现比较接口Comparable。当前,也能够实现比较器接口,只不过多了个类而已。这2种方法没有任何区别。

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

比较大小compareTo和比较相等equals

参考

http://www.importnew.com/1743...
http://www.importnew.com/1721...
http://www.importnew.com/1070...
http://www.importnew.com/2264...
http://www.importnew.com/1925...
http://www.importnew.com/1764...
http://www.cnblogs.com/skywan...

相关文章
相关标签/搜索