资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 编程开发 >
Advertisement
文章正文

java.util.Collections.sort(List list)与Comparable,Comparator 接口 _编程

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   
  • JDK1.5 最新特性  
  • 配置 Tomcat 的网站根目录、虚拟目录、端口等  
  • 彻底解决Tomcat 5.0.19中文乱码  
  • 深入探索SOAP1.1--使用SAAJ1.2.1  
  • jfreechart里在页面上生成临时图片的过程剖析  
  • 今天一位老兄回的贴,觉得不错.  
  • Java Threading中的final变量  
  • EJB工作原理学习笔记!  
  • java.lang.ClassNotFoundException: javax.xml.parsers.SAXParserFactory  
  • 在java体系结构中集成Macromedia Flex(翻译)  
  • 页面导航:

    正文内容:
    java.util.collections.sort(list list)与comparable,comparator 接口   调用java.util.collections.sort(list list)方法来进行排序的时候, list内的object都必须实现了comparable接口。 否则出现下面的错误: java.lang.classcastexception  at java.util.arrays.mergesort(arrays.java:1152)  at java.util.arrays.sort(arrays.java:1079)  at java.util.collections.sort(collections.java:113)
      或者调用 java.util.collections.sort(list list,comparator c), 可以临时声明一个comparator 来实现排序。   comparable接口的 public int compareto(object arg0) {] 返回值大于0,则this被排在后面。arg0放在前面。 可以参看integer 的compareto()方法:     public int compareto(integer anotherinteger) {
     int thisval = this.value;
     int anotherval = anotherinteger.value;
     return (thisval<anotherval ? -1 : (thisval==anotherval ? 0 : 1));
      } 返回值>=0,则不调用arrays.swap(object x[], int a, int b) 方法。  copyright © lizongbo 通过java.util.collections.sort(list list,comparator c)里临时声明的comparator 可以方便的实现顺序或者倒序排列。copyright © lizongbo 示例如下:copyright © lizongbo   collections.sort(imagelist, new comparator() {
      public int compare(object a, object b) {
      int ordera = integer.parseint( ( (image) a).getsequence());
      int orderb = integer.parseint( ( (image) b).getsequence());
      return ordera - orderb;
      }
      }); 如果需要改变排列顺序copyright © lizongbo 改成return orderb - ordera 即可。
    具体可以参考学习例子有:copyright © lizongbo http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#sorting http://java.sun.com/docs/books/tutorial/uiswing/components/example-1dot4/tablesorter.java http://java.sun.com/docs/books/tutorial/uiswing/components/example-1dot4/tablesorterdemo.java  copyright © lizongbo 这是一个实现了点击表格标题栏来实现表格数据排序的例子。  copyright © lizongbo ps:  collection(包括arraylist等)的remove(object o)方法 (src:java.util.abstractcollection.java) if (o.equals(e.next())) {
      e.remove(); 使用的equals来判断的,而如果没有重写equals方法的话, 实际调用object的 public boolean equals(object obj) {
     return (this == obj);
      }   因此,放进在集合里的元素,建议都重新实现自己的 equals方法。  copyright © lizongbo      
     

     

     
    热门推荐笔记本: IBM笔记本
    相关文章:
    webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
    ©2007 popbb.net All Rights Reserved