- 浏览: 1207710 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (718)
- HTML (13)
- JS基础 (23)
- JS应用 (40)
- AJAX (6)
- JSP相关 (12)
- JAVA基础 (52)
- JAVA应用 (74)
- APPLET (11)
- SWING\RCP (2)
- JAVA反射 (6)
- 设计模式 (26)
- 数据库设计 (20)
- Struts (35)
- Struts2 (12)
- Spring (22)
- Hibernate (45)
- Ibatis (18)
- mybatis (3)
- SSH (8)
- UML (5)
- WebService (3)
- XML (16)
- Log4j (7)
- WEB容器 (26)
- 数据结构 (36)
- Linux (34)
- Ruby on Rails (1)
- 其它技术 (27)
- IDE配置 (15)
- 项目实战 (2)
- Oracle (69)
- JAVA报表 (7)
- Android学习 (2)
- 博客链接 (1)
- 网络基础 (1)
- WEB集群 (1)
- .Net开发 (11)
- PB (4)
- 系统构建 (15)
最新评论
-
jnjeC:
牛逼啊哥们,讲得太好了
Maven仓库理解、如何引入本地包、Maven多种方式打可执行jar包 -
九尾狐的yi巴:
很好 感谢!
Itext中文处理(更新版) -
luweifeng1983:
有用的,重启一下嘛。
设置eclipse外部修改文件后自动刷新 -
Master-Gao:
设置了也不管用,怎么破呢?
设置eclipse外部修改文件后自动刷新 -
aigo_h:
锋子还有时间写博客,还是很闲哈!
Add directory entries问题
Comparator实现排序
- 博客分类:
- JAVA基础
在java.util包中有一个Collections类,里面实现了对列表排序的功能,提供了一个静态方法sort方法,接收一个列表和一个Comparator接口的实例
实现的大致步骤如下:
1,先把列表转换为数组
2,通过Arrays的sort方法对数组排序,传入Comparator接口的实例
3,然后再把排好序的数组的数值设置到原来的列表对象中去
如果Comparator接口的compare方法返回一个小于0的数,表示被比较的两个对象中,前者小于后者
见下面的实例
要排序的对象:
排序的测试端 package collectionsSort;
//用户数据的模型
public class UserModel {
private String userName,userId;
private int age;
public String getUserName() {
return userName;
}
public String getUserId() {
return userId;
}
public int getAge() {
return age;
}
public UserModel(String userName, String userId, int age) {
this.userName = userName;
this.userId = userId;
this.age = age;
}
public String toString(){
return "userName="+userName+",userId="+userId+",age="+age;
}
}
package collectionsSort; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; //直接使用Collections来排序 public class Client { public static void main(String[] args) { // 准备要测试的数据 UserModel um1 = new UserModel("u1","user1",21); UserModel um2 = new UserModel("u2","user2",24); UserModel um3 = new UserModel("u3","user3",25); UserModel um4 = new UserModel("u4","user4",22); //添加到列表中 List<UserModel> list = new ArrayList<UserModel>(); list.add(um1); list.add(um2); list.add(um3); list.add(um4); System.out.println("排序前-------------"); printList(list); //实现比较器,也可以单独用一个类来实现 Comparator c = new Comparator(){ @Override public int compare(Object arg0, Object arg1) { //这里实现按照用户年龄大小来排序 UserModel temp1 = (UserModel) arg0; UserModel temp2 = (UserModel) arg1; if(temp1.getAge()>temp2.getAge())return 1; else if(temp1.getAge()<temp2.getAge())return -1; else if(temp1.getAge()==temp2.getAge())return 0; return 0; } }; //排序,主要就是依靠Comparator接口的具体实现 Collections.sort(list,c); System.out.println("排序后-------------"); printList(list); } private static void printList(List<UserModel> list) { for(UserModel um:list){ System.out.println(um); } } }
发表评论
-
JVM内存管理及性能调优(内存溢出、内存泄漏)
2015-09-02 07:14 652JAVA内存管理(内存溢出、内存泄漏)相关参考: JA ... -
JAVA可变参数对重载的影响
2014-01-27 15:28 887package com.lwf.test; publi ... -
有关String类创建几个对象的问题
2013-07-09 23:18 1310试题一: String s = new String(& ... -
JDK1.5下实现JDK1.6的Arrays.copyOfRange() 方法
2012-08-29 10:59 1726public static void test(){ i ... -
JAVA四舍五入的处理
2012-02-11 10:47 980如下,保留两个小数位 double f = 3 ... -
JAVA定时器使用
2011-08-19 11:05 742http://hualong.iteye.com/blog/5 ... -
JDK5.0 Annotation学习笔记
2011-07-26 22:48 725http://linliangyi2007.iteye.com ... -
JAVA CP命令
2010-12-31 11:51 10259java -cp .;c:\dir1\lib.jar Test ... -
JDK1.5的新特性及应用
2010-07-13 12:49 964以下两文: http://heaven-arch.iteye ... -
JAVA面试题150例
2010-05-19 11:44 2024一、Java基础方面 1、作用域public,priva ... -
《thinking in java》第四章:初始化与清理三
2010-05-19 00:21 754http://quicker.iteye.com/blog/5 ... -
JAVA编程思想第四版完整下载地址
2010-05-18 18:35 1234http://hi.baidu.com/yang1101190 ... -
JAVA多线程学习一
2010-04-13 17:21 895http://renyangok.iteye.com/blog ... -
JAVA常用误区整理
2008-01-09 13:12 8801、 float f=1.3;是不对的,编译时会出错,java ... -
try与finally块中return的问题
2008-12-05 14:37 1217针对以下情况进行测试: 情况1:try{} catch( ... -
简单克隆与深度克隆的思考
2008-12-19 16:44 993白话简单克隆和深度克隆一文 http://blog.csd ... -
一道面试题引发的思考之:类的初始化
2008-12-29 16:23 689本人曾写过JAVA基础方面的blog,也是针对类的初始化的, ... -
JAVA基础学习篇----对象串行化及Transient关键字的使用
2009-01-08 18:07 0http://blog.csdn.net/scruffybea ... -
!JAVA学习提高之---- JAVA日期格式化及相关操作
2009-01-13 17:02 768http://blog.csdn.net/gubaohua/a ... -
JAVA学习提高之---- List toArray学到的
2009-01-19 16:34 659最近结合一个事例掌握到ArrayList 的方法toArray ...
相关推荐
程序实现时间排序Comparator
493.491.JAVA基础教程_常用类-使用Comparator实现定制排序(493).rar
计算机后端-Java-Java核心基础-第22章 常用类 23. 使用Comparator实现定制排序.avi
主要介绍了JAVA使用Comparator接口实现自定义排序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
4. * 汉字按照拼音排序的比较器 5. * @author KennyLee 2009-2-23 10:08:59 6. * 7. */ 8.public class PinyinComparator implements Comparator<Object> { 9. public int compare(Object o1, Object o2) { 10...
本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法。分享给大家供大家参考,具体如下: 在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如: String[]...
由Comparator实现类对象负责集合元素的排序逻辑。 // 自定义比较器 class MyTreeSetCompartor implements Comparator { // 实现compare方法 @Override public int compare(Object o1, ...
Comparable是在集合内部定义的方法实现的排序,而Comparator是在集合外部实现的排序,如果想实现排序,就需要在集合外定义Comparator接口的方法或在集合内实现Comparable接口的方法。 这里是一个简单的...
一个实现了struts2标签的实例,指定进行排序的Comparator实现的方法
Comparable是在集合内部定义的方法实现的排序,而Comparator是在集合外部实现的排序,如果想实现排序,就需要在集合外定义Comparator接口的方法或在集合内实现Comparable接口的方法。 这里是一个简单的...
Lucene中的自定义排序功能和... SortComparatorSource接口的功能是返回一个用来排序ScoreDocs的comparator(Expert: returns a comparator for sorting ScoreDocs).该接口只定义了一个方法.如下: Java代码 /** * Crea
一. 理论准备 ...HashMap的值是没有顺序的,它是按照key的HashCode来实现的,对于这个无序的HashMap我们要怎么来实现排序呢?参照TreeMap的value排序。 Map.Entry返回Collections视图。 二. key排序 Tr
主要是对java中将汉字按照拼音排序的实现代码进行了详细的分析介绍。需要的朋友可以过来参考下,希望对大家有所帮助
Comparator Tools 是 PHP 实现的 Java Compareable 接口,用来实现对象的排序已经一些排序的方法。 标签:Comparator
1. ==、equals、compareTo的关系 3. Comparable接口自然排序 4. comparator定制排序 5. 重写equals方法的标准
1.作用 Comparator接口包含很多方便的静态方法来创建比较器。这些方法可以用于lambda达 式或方法引用。 2. 使用方法 静态comparing方法取一个... 与手动实现一个Comparator相比,这当然要容易得多。另外,代码也加
ArraySort java数组排序的两种方法:实现Comparator接口,重写compare方法 2实现Comparable接口
本文的需求是将一组数据按某一字段中文拼音排序,分享给大家Android实现中文按拼音排序方法,供大家参考,具体内容如下 1、Test测试类: PinyinComparator comparator = new PinyinComparator(); Collections....
通过实现Comparator接口可以定义满足个各种需要的排序方式。 这个例子是通过一个Student的ArrayList,然后分别输出按照学生姓名字典排序结果和按照分数由高到低的排序结果。 是策略模式运用的一个很好实例!