一般情况下,自己动手写一个简单排序程序还是没有问题的,但是你能保证写出来的排序程序的时间复杂度吗?你能保证程序的正确性吗,鲁棒性呢,还有程序结构的清晰性,可维护性.......综上所述,学习一下排序接口来实现对复杂对象的排序还是很有必要的。Java中有两个用来实现排序的接口Comparator和Comparable接口,本人比较喜欢使用java的Comparator接口,在程序里实现Comparator接口里的compare(Object o1,Object o2)方法,然后在程序中通过调用Arrays.s...
分类:
编程语言 时间:
2015-03-29 10:48:44
阅读次数:
184
java中Comparable 和Comparator
-Comparable接口
接口定义
public interface ComparableT> {
public int compareTo(T o);
}
该接口中仅仅包含了一个compareTO()函数,
int compareTo(Obje...
分类:
编程语言 时间:
2015-03-27 22:22:14
阅读次数:
182
Java的集合类分为两个类型,Collection和Map,Collection又分为Set和List。
1. 集合类中元素是否相同
HashSet使用equals和HashCode两个函数共同决定
TreeSet使用comparable接口中的compareTo,或者comparator中的compare函数
ArrayList使用equals函数
HashMap中的key和Has...
分类:
编程语言 时间:
2015-03-18 16:02:54
阅读次数:
259
题目two num
题意:给定一个整数数组和一个目标值,要求在数组中找到两个数,使得它们的和相加等于目标值,并且返回两个数的下标
思路:1.如果使用暴力,时间复杂度为O(n^2)
2.可以先将所有数进行排序,从最大值和最小值开始匹配再根据和目标值的比较移动,知道找到结果,时间复杂度为O(nlog(n))
知识点:comparable 接口的使用,利用其进行对象的自然排序,相关文章
pub...
分类:
编程语言 时间:
2015-03-16 01:04:02
阅读次数:
142
在今天做的LeetCode的题中有两道都出现了利用接口实现对象的排序,两题的相关链接:
1.利用comparable接口对对象排序
2.利用comparator接口实现排序
由于之前都没接触过这两个接口,一时不能明白它们的作用,所以在网上查找了很多资料,现在大致弄清楚一些,现在记录下来,有什么欠缺,欢迎大家及时指正
1.Comparable接口
在java API文档中描述此接口...
分类:
其他好文 时间:
2015-03-16 01:02:02
阅读次数:
289
要想对List进行排序,可以让实体对象实现Comparable接口,重写compareTo方法即可实现按某一属性排序,但是这种写法很单一,只能按照固定的一个属性排序,没变法变化。通过下面这种方法,可以动态的指定List按照某一个属性进行排序,例子很简单,看代码就明白了。 import java...
分类:
编程语言 时间:
2015-03-12 11:01:03
阅读次数:
195
泛型是JavaSE5 引入的特性,泛型的本质是参数化类型。应用场景:在类,接口和方法的定义过程中,所操作的数据类型被传入的参数指定。
例如在ArrayList类的定义中,中的E为泛型参数,在创建对象是可以将类型作为参数传递,此时定义中的所有E将被替换为传入的参数;...
分类:
编程语言 时间:
2015-03-11 10:54:42
阅读次数:
197
1.从功能上看,Comparable接口需要对象本身具备比较的特性;而Comparator则不需要,希望两个对象进行什么样的排序,就实现什么样的Comparator,这在不希望修改已有类的情况下非常有用
2.从设计上看,Comparable接口属于强耦合接口,Comparator数据低耦合接口。使用Comparable接口来进行排序属于继承方式,也就是面向对象中的is-a关系,最好在设计...
分类:
其他好文 时间:
2015-03-09 22:30:55
阅读次数:
226
/** TreeSet存储对象的时候, 可以排序, 但是需要指定排序的算法** Integer能排序(有默认顺序), String能排序(有默认顺序), 自定义的类存储的时候出现异常(没有顺序)** 如果想把自定义类的对象存入TreeSet进行排序, 那么必须实现Comparable接口* 在类上i...
分类:
其他好文 时间:
2015-03-05 19:18:54
阅读次数:
146
首先我们得说明在Collections里面有两个排序方法
public static void sort(List list, Comparator c)
public static > void sort(List list) 很清晰,第二个方法不需要传入比较器,但是传入的待排序的参数list必须实现Comparable接口。
我们目前就只看第二个sort。
Collection...
分类:
其他好文 时间:
2015-03-04 14:44:50
阅读次数:
154