1.Integer/String泛型的List进行排序
List integerlist = new ArrayList(); //定义一个Integer泛型的List
然后用add()方法添加一些Integer类型的数据到该List中,
Collections.sort(integerlist); //因为是数值型的数据,排序即按照大小升序排序
2.自定义泛型的List进行排序
其实Collections.sort(List)方法进行排序的前提是:List对象中的泛型类实现了Comparable接口;
我们拿学生类来用具体的代码演示一下:
public class StudentimplementsComparable{
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 comparebyidimplementsComparator{
public int compare(Student o1,Student o2){
return o1.id.compareTo(o2.id);
}
}
Name排序规则(类):
public class comparebynameimplementsComparator{
public int compare(Student o1,Student o2){
return o1.name.compareTo(o2.name);
}
}
规则定义好了,如何使用呢?
先实例化一个规则对象,将对象传入Collections.sort()方法中:
Collections.sort(studentlist,new comparebyname());
这样就能忽略上面的默认规则,实现按照新的规则(姓名排序)排序了。
用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()排序详解
public static void main(String[] args) { List list = new ArrayList(); ...
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()不知道规则,所以无法比较,这种情况下一定 ...
关于Collections中的sort()方法总结
用Java集合中的Collections.sort方法对list排序的两种方法 本文部分引用自:http://my.oschina.net/leoson/blog/131904 用Collection ...
随机推荐
canvas调用scale或者drawImage图片操作后,锯齿感很明显的解决
SQL Server使用游标或临时表遍历数据
方法一:使用游标(此方法适用所有情况,对标结构没有特殊要求.) declare @ProductName nvarchar() declare pcurr cursor for select Prod ...
php curl 提交 总结
1.post https提交 方法 function curl_post2($url='', $postdata='', $options=array()){ $ch = curl_init($url ...
:gAudit
http://www.doc88.com/p-0794369847693.html http://baike.baidu.com/link?url=pcOUfBpILuEAPFrBSsSU-6Vzg3 ...
windows phone 独立存储空间的操作 (2)
原文:windows phone 独立存储空间的操作 (2) IsolatedStorage独立存储空间是保存应用程序的一些数据已经配置文件,独立存储空间相对于其他的wp程序是独立的,也就是说每个wp ...
Cocos2d-x3.2游戏的核心循环在Application,怎样处理FPS不稳
今天天气非常阴,立即要下雨了,陈吃早点功夫写点东西, 一场秋雨一场寒,十场秋雨要穿棉,各位从今往后多穿点 int Application::run() { if(!applicationDidFini ...
C# 霍尼韦尔扫码枪扫码打印
程序运行背景条件: 1.将扫码枪调制串口驱动模式 2.将扫码枪所在串口拆分成几个虚拟串口 3.扫码枪扫描条码就打印条码 4.WinForm程序 条码控件使用 DevExpress.XtraEditor ...
Code First
Add-Migration ****** Update-Database –Verbose
luogu2643 聪聪可可
题目链接 题意 其实转化之后的题意就是求出树上有多少条路径长度是3的倍数.求答案的时候只要将这个数字除以总路径数量就行了. 思路 考虑点分治.对于当前子树,分别求出出树中每个点到根的路径长度对\(3\ ...
mxnet:背景介绍
学习的过程 使用mxnet作为教程的深度学习库,重点介绍高层抽象包gluon 双轨学习法,既教授大家从零实现,也教授大家使用gluon实现模型:前者为了理解深度学习的底层设计,后者将大家从繁琐的模型设 ...