java集合中Comparable和Comparator辨析
来源:互联网 发布:流体力学计算软件 编辑:程序博客网 时间:2024/05/17 17:44
一.Comparable和Comparator简介
在对集合元素进行比较时一般使用TreeSet.对于简单的数据类型,TreeSet可以直接进行比较。但是对于复杂的数据类型,比如自己定义的数据类型或者类,就需要自己设置比较方法与比较规则了,这时就需要使用Comparable和Comparator。 Comparable和Comparator都是用来实现集合中的排序的,只是Comparable是在集合内部定义的方法实现排序,而Comparator是在集合外部实现的排序。所以如果想对结合排序,需要在集合外定义Comparator接口的方法或在集合内部实现Comparable接口的方法。
一个类实现了Comparable接口则表明这个类的对象之间是可以相互比较的,这个类对象组成的结合就可以直接使用sort方法排序。
Comparator是策略模式,就是在不改变对象自身,而用一种策略对象来改变它的行为,将算法和数据分离,Comparator还可以在下面两种环境下使用:
1.类在设计时没有考虑到比较问题而没有实现Comparable接口,则可以通过Comparator来实现排序而不必修改原来的类代码。
2.类设计时实现了Comparable接口,但是后面的使用者却想用一种新的比较规则对类进行比较
二。用法示例:
Comparable排序:
首先定义实现Comparable接口的Item类
定义对Item进行排序的类,对集合进行排序是使用TreeSet或TreeMap,此处用TreeSet存放集合元素。
Comparator排序实现示例:
首先定义需要排序的类People
接着建立对People进行排序的类,利用Comparator进行排序有两种方法,第一种方法是把需要排序的People对象放在List集合中,然后调用Collection.sort(list,comparator)方法进行排序;第二中排序方法是直接把Comparator对象传递给TreeSet的构造器,并重载Comparator类的compara方法,指定排序规则,这种方法不需要让People类实现Comparator接口,且其代码较简洁。
Comparator
- java集合中Comparable和Comparator辨析
- java集合中Comparable和Comparator辨析
- Java集合中Comparable和Comparator辨析
- Java中Comparable和Comparator的辨析
- 【JAVA/辨析】Java 中Comparable和Comparator区别比较
- Java中Comparable和Comparator
- java中Comparable 和Comparator
- Java 中 Comparable 和 Comparator
- java中comparable和comparator
- Java集合中Comparable与Comparator
- 辨析Comparator Comparable
- Comparator与Comparable辨析
- java中comparable和 comparator的区别
- java中Comparator 和 Comparable 的区别
- Java 中 Comparable 和 Comparator 比较
- Java中Comparable和Comparator比较
- Java中Comparator和Comparable的区别
- Java中Comparable和Comparator的比较
- Android fragment的保留
- JAVA温习课堂2
- Java笔记——接口与抽象类
- vs2013下编译jrtplib
- How to install PHP pthreads extension on Ubuntu?
- java集合中Comparable和Comparator辨析
- linux64下安装Go语言
- 苹果强制适配IPv6-only网络 该怎么做iOS应用兼容适配IPv6
- SCU2016-04 A题
- 【IOS学习】面试iOS工程师的相关问题
- Xcode 升级之后安装插件管理工具
- 南阳oj 233 sort it
- 2016.09.10【初中部 NOIP提高组 】模拟赛C
- 台州学院acm:3128 简单版贪吃蛇