网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.通过Java Swing看透MVC设计模式.
.Log4J日志管理系统使用心得体会.
.X3D实战基础讲座之十一.
.JohnHancock互助人寿保险公司.
.《Effective Java》学习笔记(1).
.一个用JAVA开发的会话密钥程序,可.
.Java Servlet API说明文档(2.1a.
.在.NET框架中保留应用程序设置.
.如何准备SCJD.
.Win2000下Tomcat4.1.12+Apache2..
.当主线程崩溃而其它线程继续运行.
.Drives 集合.
.Struts1.2.2新功能全新体验.
.开源的持续集成框架 CruiseContr.
.反汇编器-javap.exe.
.Unix标准加密方法(2).
.非打印字符.
.使用Spring更好地处理Struts动作.
.Java设计模式例子 FactoryMethod.
.toLowerCase 方法.

Java技巧:列表排序

发表日期:2008-1-5


天极IT资讯短信服务 电脑小技巧
资费:包月5元
手机:
介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。(首月免费)

  在Java Collection Framework中定义的List实现有Vector,ArrayList和LinkedList。这些集合提供了对对象组的索引访问。他们提供了元素的添加与删除支持。然而,它们并没有内置的元素排序支持。
  你能够使用java.util.Collections类中的sort()方法对List元素进行排序。你既可以给方法传递一个List对象,也可以传递一个List和一个Comparator。假如列表中的元素全都是相同类型的类,并且这个类实现了Comparable接口,你可以简单的调用Collections.sort()。假如这个类没有实现Comparator,你也可以传递一个Comparator到方法sort()中,进行排序。假如你不想使用缺省的分类顺序进行排序,你同样可以传递一个Comparator到方法sort()中来进行排序。假如列表中的元素并不都是相同类型的类,你在进行排序的时候就不是这样幸运了。除非你编写一个专用的跨类的Comparator。

  排序的顺序怎么样呢?假如元素是String对象,却省的排序顺序是按照字符编码进行的,基本上是每个字符的ASCII/Unicode值。假如严格的限制在处理英文,却省的排序顺序通常是足够的,因为它首先排A-Z,然后是小写字母a-z。然而假如你处理非英文字,或者你只是想使用不同的排序顺序,这样Collections.sort()就出现了第二种变化。例如,你想使用字符串的反序进行排序。为了实现这个功能,你可以在Collections类中通过reverseOrder()来获取一个反序Comparator。然后,你将反序Comparator传递给sort()方法。换句话说,你作如下工作:

List list = ...;
Comparator comp = Collections.reverseOrder();
Collections.sort(list, comp);
  假如列表包含项目:Man, man, Woman, 和woman,排序好的列表将是Man, Woman, man, woman。这里没有什么复杂的。需要注重的非常重要的一点是Collections.sort()是进行原位排序。假如你需要保留原序,需要先对原集合进行复制,在排序,就像这样:

List list = ...;
List copyOfList = new ArrayList(list);
Collections.sort(copyOfList);
  这里,排好序的列表是:Man, Woman, man, woman,但是原始列表(Man, man, Woman, woman)被保留了。

  到目前为止,排序是区分大小写的。你如何进行不去分大小写的排序呢?一种实现方式是象这样实现Comparator:

public static class CaseInsensitiveComparator
implements Comparator {
public int compare(Object element1,
Object element2) {
String lower1 =
element1.toString().toLowerCase();
String lower2 =
element2.toString().toLowerCase();

上一篇:Java编程图像处理技巧 人气:545
下一篇:用lpadmin打印多种内容形式 人气:623
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐