- 浏览: 3096446 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (372)
- diy (4)
- linux (19)
- 杂项 (30)
- Swing (21)
- Java2D (21)
- Java3D (5)
- JavaIO (9)
- Java通讯 (5)
- Java设计模式 (3)
- Java多媒体 (0)
- Java算法 (7)
- Spring&EJB (29)
- Javaoffice (4)
- web前端 (23)
- javascript (1)
- php基础 (1)
- eclipse (3)
- 网站相关 (3)
- Apache (4)
- seo (12)
- db (28)
- server (3)
- api (4)
- 异常 (12)
- 计算机网络词汇表 (3)
- 随想录 (52)
- 收藏 (17)
- 犹太人的智慧 (3)
- 多线程 (1)
- jfreechart (7)
- Test (1)
- SorLib (30)
- ruby on rails (1)
最新评论
-
houyutao:
二三四都是错的空字符串也被匹配,*应该改成+
Java中判断字符串是否为数字的五种方法 -
mingyun:
但是 java.util.ArrayList 实现了 remo ...
java.lang.UnsupportedOperationException 解决方案 -
mingyun:
1.因为 Arrays.asList 返回的是 Arrays内 ...
java.lang.UnsupportedOperationException 解决方案 -
leolu007:
用java8新特性String testStr = " ...
java.lang.UnsupportedOperationException 解决方案 -
zhaohuaxishiwzw:
我之前所在的项目就是日本一家证券公司的项目。完全使用的是j2e ...
抛弃EJB(EJB2.0,EJB3.0,EJB4.0)
用例是这样的:
一个结果集List,里面有很多的对象,要求根据对象的字段进行排序。
算法:
1. 对象实现Comparable接口,并从写compareTo()方法,方法里是排序规则。
2. 利用Arrays.sort(o)进行排序,不要要注意需要List.toArray();
3. 获得排序后的List。
具体算法如下:
排序和测试类:
运行结果如下:
一个结果集List,里面有很多的对象,要求根据对象的字段进行排序。
算法:
1. 对象实现Comparable接口,并从写compareTo()方法,方法里是排序规则。
2. 利用Arrays.sort(o)进行排序,不要要注意需要List.toArray();
3. 获得排序后的List。
具体算法如下:
import java.util.Date; /** * 需要排序的bean对象。 * * @author zaki * */ public class ComparableBean implements Comparable<ComparableBean> { private int id; private String name; private Date birthday; public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } /* * 按照id从大到到小的顺序排序。 自己可以在方法里面编写任意的排序算法。 */ public int compareTo(ComparableBean o) { // 根据名字从小到大顺序:if(String.CASE_INSENSITIVE_ORDER.compare(getName(), o.getName()) > 0) // 根据生日从小到大顺序:if (this.birthday.compareTo(o.getBirthday()) > 0) // 根据ID从小到大顺序。 if(this.getId() > o.getId()){ return 1; }else { return -1; } } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return getId() + " : " + getName() + " : " + getBirthday().toString(); } }
排序和测试类:
import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Random; public class TestComparable { private TestComparable() { ComparableBean cbean; Random rand = new Random(); List<ComparableBean> beans = new ArrayList<ComparableBean>(); for (int i = 0; i < 100; i++) { cbean = new ComparableBean(); cbean.setId(rand.nextInt(10000)); cbean.setBirthday(new Date()); cbean.setName("TestName" + rand.nextInt(1000)); beans.add(cbean); } Object[] beanObjects = beans.toArray(); Arrays.sort(beanObjects); beans.removeAll(beans); System.out.println(beans.size()); for (int i = 0; i < 100; i++) { System.out.println(beanObjects[i]); } System.out.println("ok"); } public static void main(String[] args) { new TestComparable(); } }
运行结果如下:
0 181 : TestName290 : Tue Mar 29 15:51:54 CST 2011 230 : TestName45 : Tue Mar 29 15:51:54 CST 2011 275 : TestName601 : Tue Mar 29 15:51:54 CST 2011 354 : TestName689 : Tue Mar 29 15:51:54 CST 2011 657 : TestName755 : Tue Mar 29 15:51:54 CST 2011 792 : TestName471 : Tue Mar 29 15:51:54 CST 2011 1041 : TestName441 : Tue Mar 29 15:51:54 CST 2011 1061 : TestName821 : Tue Mar 29 15:51:54 CST 2011 1247 : TestName836 : Tue Mar 29 15:51:54 CST 2011 1347 : TestName139 : Tue Mar 29 15:51:54 CST 2011 1791 : TestName105 : Tue Mar 29 15:51:54 CST 2011 1882 : TestName930 : Tue Mar 29 15:51:54 CST 2011 1993 : TestName969 : Tue Mar 29 15:51:54 CST 2011 2114 : TestName912 : Tue Mar 29 15:51:54 CST 2011 2131 : TestName677 : Tue Mar 29 15:51:54 CST 2011 2168 : TestName975 : Tue Mar 29 15:51:54 CST 2011 2215 : TestName354 : Tue Mar 29 15:51:54 CST 2011 2253 : TestName84 : Tue Mar 29 15:51:54 CST 2011 2310 : TestName928 : Tue Mar 29 15:51:54 CST 2011 2385 : TestName466 : Tue Mar 29 15:51:54 CST 2011 2387 : TestName492 : Tue Mar 29 15:51:54 CST 2011 2388 : TestName416 : Tue Mar 29 15:51:54 CST 2011 2578 : TestName873 : Tue Mar 29 15:51:54 CST 2011 2603 : TestName8 : Tue Mar 29 15:51:54 CST 2011 2768 : TestName538 : Tue Mar 29 15:51:54 CST 2011 2790 : TestName503 : Tue Mar 29 15:51:54 CST 2011 2797 : TestName884 : Tue Mar 29 15:51:54 CST 2011 2893 : TestName747 : Tue Mar 29 15:51:54 CST 2011 2894 : TestName333 : Tue Mar 29 15:51:54 CST 2011 2961 : TestName33 : Tue Mar 29 15:51:54 CST 2011 3086 : TestName691 : Tue Mar 29 15:51:54 CST 2011 3156 : TestName70 : Tue Mar 29 15:51:54 CST 2011 3220 : TestName534 : Tue Mar 29 15:51:54 CST 2011 3274 : TestName220 : Tue Mar 29 15:51:54 CST 2011 3361 : TestName696 : Tue Mar 29 15:51:54 CST 2011 3578 : TestName709 : Tue Mar 29 15:51:54 CST 2011 3593 : TestName982 : Tue Mar 29 15:51:54 CST 2011 3751 : TestName619 : Tue Mar 29 15:51:54 CST 2011 3760 : TestName707 : Tue Mar 29 15:51:54 CST 2011 3989 : TestName241 : Tue Mar 29 15:51:54 CST 2011 4189 : TestName900 : Tue Mar 29 15:51:54 CST 2011 4321 : TestName442 : Tue Mar 29 15:51:54 CST 2011 4460 : TestName739 : Tue Mar 29 15:51:54 CST 2011 4566 : TestName251 : Tue Mar 29 15:51:54 CST 2011 4687 : TestName261 : Tue Mar 29 15:51:54 CST 2011 4809 : TestName138 : Tue Mar 29 15:51:54 CST 2011 4933 : TestName168 : Tue Mar 29 15:51:54 CST 2011 4939 : TestName298 : Tue Mar 29 15:51:54 CST 2011 4944 : TestName885 : Tue Mar 29 15:51:54 CST 2011 5000 : TestName299 : Tue Mar 29 15:51:54 CST 2011 5116 : TestName528 : Tue Mar 29 15:51:54 CST 2011 5261 : TestName239 : Tue Mar 29 15:51:54 CST 2011 5330 : TestName665 : Tue Mar 29 15:51:54 CST 2011 5530 : TestName719 : Tue Mar 29 15:51:54 CST 2011 5543 : TestName273 : Tue Mar 29 15:51:54 CST 2011 5599 : TestName389 : Tue Mar 29 15:51:54 CST 2011 5762 : TestName132 : Tue Mar 29 15:51:54 CST 2011 5798 : TestName156 : Tue Mar 29 15:51:54 CST 2011 5988 : TestName507 : Tue Mar 29 15:51:54 CST 2011 6049 : TestName569 : Tue Mar 29 15:51:54 CST 2011 6092 : TestName671 : Tue Mar 29 15:51:54 CST 2011 6135 : TestName403 : Tue Mar 29 15:51:54 CST 2011 6226 : TestName492 : Tue Mar 29 15:51:54 CST 2011 6251 : TestName397 : Tue Mar 29 15:51:54 CST 2011 6310 : TestName892 : Tue Mar 29 15:51:54 CST 2011 6434 : TestName254 : Tue Mar 29 15:51:54 CST 2011 6622 : TestName436 : Tue Mar 29 15:51:54 CST 2011 6631 : TestName609 : Tue Mar 29 15:51:54 CST 2011 6676 : TestName348 : Tue Mar 29 15:51:54 CST 2011 6856 : TestName309 : Tue Mar 29 15:51:54 CST 2011 6906 : TestName492 : Tue Mar 29 15:51:54 CST 2011 6944 : TestName812 : Tue Mar 29 15:51:54 CST 2011 6990 : TestName563 : Tue Mar 29 15:51:54 CST 2011 7235 : TestName67 : Tue Mar 29 15:51:54 CST 2011 7275 : TestName783 : Tue Mar 29 15:51:54 CST 2011 7625 : TestName457 : Tue Mar 29 15:51:54 CST 2011 7670 : TestName598 : Tue Mar 29 15:51:54 CST 2011 7687 : TestName813 : Tue Mar 29 15:51:54 CST 2011 7884 : TestName581 : Tue Mar 29 15:51:54 CST 2011 7945 : TestName350 : Tue Mar 29 15:51:54 CST 2011 8062 : TestName772 : Tue Mar 29 15:51:54 CST 2011 8090 : TestName971 : Tue Mar 29 15:51:54 CST 2011 8107 : TestName368 : Tue Mar 29 15:51:54 CST 2011 8283 : TestName516 : Tue Mar 29 15:51:54 CST 2011 8322 : TestName434 : Tue Mar 29 15:51:54 CST 2011 8332 : TestName960 : Tue Mar 29 15:51:54 CST 2011 8933 : TestName326 : Tue Mar 29 15:51:54 CST 2011 8952 : TestName818 : Tue Mar 29 15:51:54 CST 2011 9051 : TestName363 : Tue Mar 29 15:51:54 CST 2011 9062 : TestName551 : Tue Mar 29 15:51:54 CST 2011 9099 : TestName913 : Tue Mar 29 15:51:54 CST 2011 9204 : TestName266 : Tue Mar 29 15:51:54 CST 2011 9313 : TestName555 : Tue Mar 29 15:51:54 CST 2011 9526 : TestName234 : Tue Mar 29 15:51:54 CST 2011 9573 : TestName948 : Tue Mar 29 15:51:54 CST 2011 9575 : TestName284 : Tue Mar 29 15:51:54 CST 2011 9635 : TestName409 : Tue Mar 29 15:51:54 CST 2011 9762 : TestName963 : Tue Mar 29 15:51:54 CST 2011 9819 : TestName962 : Tue Mar 29 15:51:54 CST 2011 9995 : TestName116 : Tue Mar 29 15:51:54 CST 2011 ok
评论
1 楼
areful
2013-03-06
List list = new ArrayList(); //...... Collections.sort(list, new Comparator() { //这里的o1和o2就是list里任意的两个对象 //然后按需求把这个方法填完整就行了 public int compare(Object o1, Object o2) { //比较规则 } });
发表评论
-
log4j ConversionPattern 参数的格式含义
2014-12-17 11:51 2143ConversionPattern参数的格式含义 格式名 含 ... -
Java的定时器的例子
2012-06-28 14:30 1574一个java的定时器,每隔1秒钟刷新一次JLabel,5秒钟后 ... -
JPDA:Java平台调试架构
2011-11-02 14:51 1361Java Platform Debugger Archit ... -
Sun Standard RMI Properties
2011-10-24 16:43 1551Properties that are useful to s ... -
ant编译时制定jdk版本
2011-07-27 14:21 1762eg: 指定1.5 -Dant.build.javac.tar ... -
SLF4J+logBack 代替 Log4j
2011-07-08 14:33 14159Ceki Gülcü创造了日志领域界著名的Log4J,现在又实 ... -
MAVEN_OPTS和CATALINA_OPTS的作用
2011-07-06 15:25 4299MAVEN_OPTS=-Xdebug -Xrunjdwp:tr ... -
Eclipse WTP
2011-05-09 19:25 1717WTP(Web Tools Platform )项目在ecli ... -
Eclipse Checkstyle下载地址
2011-04-19 15:43 4174http://eclipse-cs.sourceforge.n ... -
MyEclipse8.5 删除J2EE项目中的JavaScript验证
2011-04-01 14:00 3226MyEclipse中J2EE项目中的JavaScript验证, ... -
为什么使用JUnit
2011-03-28 16:13 4011在你提升程序代码的品 ... -
Myeclipse8.5中svn插件的安装和下载
2011-03-21 13:50 16672安装subclipse, MyEclipse8.5 SVN插件 ... -
NetBeans6的文件树怎样自动展开?
2010-12-05 21:00 1547我们在使用Eclipse时,如果我们点击一个右边的文件,左边的 ... -
NetBeans常用快捷键
2010-11-29 14:07 2001完成代码:ctrl+\ 错误提 ... -
ArrayList和LinkedList的区别
2010-11-01 20:25 1940ArrayList看做是一个大小 ... -
类型后面三个点(String...)和数组(String[])的区别
2010-10-08 13:59 12156关键词:类型后面三个点,数组,String...,String ... -
软件设计师推荐阅读书籍列表
2010-09-28 16:00 1714* 《UML宝典》 * 《UML业务建模》 * 《设计模 ... -
对象序列化与反序列化
2010-09-21 13:55 1568关键词: 序列化,反序列化,例子 序列化简单说就是为了保存在 ... -
极限编程(Extreme Programming)
2010-09-20 13:47 1386Extreme Programming(极限编 ... -
Java 6的十大亮点
2010-09-19 17:01 1454关键词: Java6,功能,桌面,性能 1.性能和质量 ...
相关推荐
java面试试题 全面 准确 带答案 coreJava部分 8 1、面向对象的特征有哪些方面? 8 2、作用域public,private,protected,以及不写时的区别? 8 3、String 是最基本的数据类型吗? 8 4、float 型float f=3.4是否正确? 8 ...
用JAVA实现一个快速排序。 79 11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。 81 三. html&JavaScript&ajax...
用JAVA实现一个快速排序。 79 11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。 81 三. html&JavaScript&ajax...
用JAVA实现一个快速排序。 79 11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。 81 三. html&JavaScript;&ajax;...
用JAVA实现一个快速排序。 79 11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。 81 三. html&JavaScript&ajax...
用JAVA实现一个快速排序。 79 11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。 81 三. html&JavaScript&ajax...
各种java面试题集,面试前必备哦, 1. Java基础部分 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 8 2、Java有没有goto? 8 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套...
用JAVA实现一个快速排序。 79 11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。 81 三. html&JavaScript&ajax...
用JAVA实现一个快速排序。 79 11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。 81 三. html&JavaScript;&ajax;...
用JAVA实现一个快速排序。 79 11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。 81 三. html&JavaScript;&...
【数据库】哪些字段该添加索引,哪些不添加? 109 【数据库】分页查询语句怎么写? 110 Mysql数据库 110 SQL Server 110 Oralce数据库 111 【数据库】存储过程与SQL语句对比 111 【数据库】数据库优化 113 【数据库...
coreJava部分 8 1、面向对象的特征有哪些方面? 8 2、作用域public,private,protected,以及不写时的区别? 8 3、String 是最基本的数据类型吗? 8 4、float 型float f=3.4是否正确? 8 5、语句float f=1.3;编译能否...
Java 基础部分..................................................................................................................... 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么...
可按任意字段排序的分页存储过程(不用临时表的方法,不看全文会后悔) 常用sql存储过程集锦 存储过程中实现类似split功能(charindex) 通过查询系统表得到纵向的表结构 将数据库表中的数据生成Insert脚本的存储过程!!! ...