java中Collections.sort()方法实现集合排序
1.Integer/String泛型的List进行排序
List <Integer> integerlist = new ArrayList<Integer>(); //定义一个Integer泛型的List
然后用add()方法添加一些Integer类型的数据到该List中,
Collections.sort(integerlist); //因为是数值型的数据,排序即按照大小升序排序
2.自定义泛型的List进行排序
其实Collections.sort(List)方法进行排序的前提是:List对象中的泛型类实现了Comparable接口;
我们拿学生类来用具体的代码演示一下:
public class Student implements Comparable<Student>{
int id;
String name;
........
public int compareTo(Student o){ //实现接口自然要实现接口的方法
return this.id.compareTo(o.id); //规定学生对象排序的依据,这里按ID排序
}
}
然后就可以对一个由学生对象组成的List表进行Collections.sort(List)排序了(其实是按ID排序)
Comparable接口定义的规则是默认规则。
3.Comparator接口
这个接口可以帮助我们事先定义好各种比较规则,用的时候直接换规则,不用去改泛型对象里
的比较方法compareTo(),
ID排序规则(类):
public class comparebyid implements Comparator<Student>{
public int compare(Student o1,Student o2){
return o1.id.compareTo(o2.id);
}
}
Name排序规则(类):
public class comparebyname implements Comparator<Student>{
public int compare(Student o1,Student o2){
return o1.name.compareTo(o2.name);
}
}
规则定义好了,如何使用呢?
先实例化一个规则对象,将对象传入Collections.sort()方法中:
Collections.sort(studentlist,new comparebyname());
这样就能忽略上面的默认规则,实现按照新的规则(姓名排序)排序了。
java中Collections.sort()方法实现集合排序的更多相关文章
- 用Java集合中的Collections.sort方法对list排序的两种方法
用Collections.sort方法对list排序有两种方法第一种是list中的对象实现Comparable接口,如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
- 关于Java中Collections.sort和Arrays.sort的稳定性问题
一 问题的提出 关于Java中Collections.sort和Arrays.sort的使用,需要注意的是,在本文中,比较的只有Collections.sort(List<T> ele ...
- Java中Collections.sort()排序详解
public static void main(String[] args) { List<String> list = new ArrayList<String>(); ...
- java中Collections.sort排序详解
Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能:如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e,f, ...
- (网页)java中Collections.sort排序详解(转)
转自CSDN: Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能:如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b, ...
- [转]java中Collections.sort排序详解
Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能:如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e, ...
- Java基础集锦——利用Collections.sort方法对list排序
要想对List进行排序,可以让实体对象实现Comparable接口,重写compareTo方法即可实现按某一属性排序,但是这种写法很单一,只能按照固定的一个属性排序,没变法变化.通过下面这种方法,可以 ...
- 关于Java中Arrays.sort()方法TLE
最近一直在练用Java写题,今天无意发现一道很简单的二分题(链接),我一开始是直接开int[]数组调用Arrays.sort()去排序,没想到TLE了,原来是因为jdk中对于int[]的排序是使用快速 ...
- Collections.sort方法对list排序的两种方式
Collections.sort( )分为两部分,一部分为排序规则,一部分为排序算法 . 规则用来判断对象,算法则考虑如何进行排序 对于自定义对象,sort()不知道规则,所以无法比较,这种情况下一定 ...
随机推荐
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(二十一)
回到Xcode中,在MainScene.h接口中添加碰撞协议: @interface MainScene : CCNode <CCPhysicsCollisionDelegate> //. ...
- 深入理解android6.0 RunTime Permisstion
了解下runtime permission 2015.8 google发布了android 6.0,sdk版本为23,一款"为工作升级而生"的android系统.如6.0新加入的指 ...
- WebLogic重启
1,用户名密码登录. 2,切换到weblogic的bin目录下 cd bea/user_projects/domains/base_domain/bin/ 3,先停止服务器 ./stopWe ...
- List常用整理
长期更新,主要记录List的各种常用操作整理. 对List进行排序 // Collections.sort(重写toString()进行排序区分) List<ObjectName ...
- Chapter 2 User Authentication, Authorization, and Security(11):在已还原的数据库中修正登录映射错误
原文出处:http://blog.csdn.net/dba_huangzj/article/details/39496517,专题目录:http://blog.csdn.net/dba_huangzj ...
- Java 对象在堆中的内存结构
翻译人员: 铁锚 翻译日期: 2013年11月8日 原文链接: What do Java objects look like in memory during run-time? 我们知道,函数每次 ...
- 小强的HTML5移动开发之路(8)——坦克大战游戏2
来自:http://blog.csdn.net/cai_xingyun/article/details/48629015 在上一篇文章中我们已经画出了自己的坦克,并且可以控制自己的坦克移动,我们继续接 ...
- 【翻译】使用Ext JS设计响应式应用程序
原文:Designing Responsive Applications with Ext JS 在当今这个时代,用户都希望Web应用程序无论在形状还是大小上,既能在桌面电脑,也能在移动设备上使用.使 ...
- PDA智能设备解决方案打包及部署
演练:打包智能设备解决方案以便进行部署 Visual Studio 2008 本演练演示如何使用 Visual Studio 将应用程序及其资源打包到一个 CAB 文件中,以便可将其部署到最终用户的智 ...
- Linux管道编程实例
/*管道 可以把管道想象为两个实体之间的单向连接器.注意,管道是半双工的, 如果需要全双工通讯,应该转而考虑套接字. 匿名管道又称管道,提供了一个进程与它的兄弟进程通讯的方法,只存在于父进程中: 命名 ...