Java.util.Collections.sort(List l) 排序 [implements Comparable]
来源:互联网 发布:青蜂网络 编辑:程序博客网 时间:2024/06/11 03:08
http://blog.163.com/it_novice/blog/static/20918306920133891020132/中提到过sort对于字符串和数字的排序
![Java.util.Collection.sort(List l) 排序 - 小镜子~ - 菜园子 Java.util.Collection.sort(List l) 排序 - 小镜子~ - 菜园子](http://img.blog.csdn.net/20130522143936379)
在之前对于sort()方法的描述和上面的代码中我们可以看到,被sort的对象的类必须implements Comparable<T>并且实现接口内的int compareTo()方法
int compareTo(T o)方法的实现:
![Java.util.Collection.sort(List l) 排序 - 小镜子~ - 菜园子 Java.util.Collection.sort(List l) 排序 - 小镜子~ - 菜园子](http://img.blog.csdn.net/20130522144104658)
下面主要讨论下对于Object的排序(主要是Object内部的参数,例如按Pig的体重对Pig们排序,或者按名字对pig排序)
以下是利用Comparable接口实现:(缺点,只能使一个类拥有一种排序方法)
利用Comparator接口实现的更加完善的多种排序方法见:
http://blog.163.com/it_novice/blog/static/20918306920133985433867/
例:按PIG的名字的升序将猪猪们排列
【关sort()方法的描述:
public static <T extends Comparable<? super T>> void sort(List<T> list)
将指定的序列按自然顺序升序排序,List中所有元素必须实现Comparable接口,元素两两之间必须相互可比较,否则会抛出异常ClassCastException】
先看一看该程序的main函数:
由于System.out.println(anObject)执行时都会调用toString()
而toString()是定义在Object类中的
一般而言,不人为在类中覆盖toString()方法,默认的toString(anObject)范围的字符串是这样的:
所以为了让System.out.println(anObject)输出正确的pig的名字,我们要人为覆盖toString()方法
以下是Pig类的代码:
关于int compareTo(T o)的说明是这样的
【返回一个负值,0,正值,来表示这个object小于,等于,或大于括号中指定的object】
public int compareTo(Pig pig){
return name.compareTo(pig.getName());
//name比括号中的那个pig的name‘大’则返回1,一样就返回0,‘小于’则返回-1
//相当于给系统一个排序的规则进行排序
//这样写是顺着系统的逻辑的,是升序
//降序怎么写,且看后文
}
关于class Pig implements Comparable<T>:T基本要跟class一样,因为都是猪跟猪比,人跟人比,鸡翅膀不能跟鸡屁股比
以下是程序的输出结果(升序):
降序怎么写:
只要把compareTo()内部的人return 换一换:(换言之 本pig比你小才返回1(原来是本pig比你大返回1))
降序的输出结果:
程序的代码下载:http://yunpan.cn/QEteTavUgItuD
- Java.util.Collections.sort(List l) 排序 [implements Comparable]
- Java.util.Collections.sort(List l) 排序 [implements Comparator]
- java.util.Collections.sort(List list)与Comparable,Comparator 接口
- java.util.Collections.sort(List list)与Comparable,Comparator
- java.util.Collections.sort(List list)类的应用(与Comparable,Comparator比较)
- java List 排序 Collections.sort
- java List 排序 Collections.sort()
- java List 排序 Collections.sort
- java List 排序 Collections.sort()
- java List 排序 Collections.sort()
- java List 排序 Collections.sort()
- java List 排序 Collections.sort()
- java List 排序 Collections.sort()
- java List 排序 Collections.sort()
- java List 排序 Collections.sort()
- java List 排序 Collections.sort()
- java List 排序 Collections.sort()
- java中Collections.sort(list)排序和Comparator和Comparable的区别
- JAVA中private protected public 修饰符及JAVA默认修饰符(default acess)
- JAVA Socket 网络联机 客户端 服务端 笔记
- Building your own toolchain
- JAVA 多线程 笔记
- JAVA.util.Collections List的常用方法,sort()
- Java.util.Collections.sort(List l) 排序 [implements Comparable]
- JAVA 泛型(generic)
- JAVA 里的数据结构 Set List Map
- Java.util.Collections.sort(List l) 排序 [implements Comparator]
- JAVA 多态(以及多态在数组和ArrayList中的体现)
- JAVA GUI 图形界面 ※插入图片※
- JAVA 内部类
- JAVA GUI 图形界面
- JAVA 异常 exception