Collections操作List集合升序、降序sort方法使用

2015-12-31 16:31 阅读 8,178 次 评论 2 条
版权声明:本文著作权归TeachCourse所有,未经许可禁止转载,谢谢支持!
转载请注明出处:http://teachcourse.cn/1185.html

摘要:我经常将Collection和Collections这两者混一起了,弄得有点不明白,今天特地查看了资料,理一理他们之间的区别,加深了Collection接口和Collections封装类的认识。

一、 Collections 是java.util包中提供的一个集合接口,我们用的最多的是它的直接接口List、Set,提供集合操作的实例方法和静态方法。Collections接口在Java 类库中有很多具体的实现。

Collection  
├List  
│├LinkedList  
│├ArrayList  
│└Vector  
│ └Stack  
└Set 
JavaSDK不提供直接继承自Collections接口,Java SDK提供的类都是继承自Collection的“子接口”,例如List、Set

001-Collections常用方法

二、Collections是java.util包中提供的一个封装类,类中包装了很多操作集合的静态方法,比如比较常用的:sort(List)、sort(List, Comparator) 、binarySearch(List>, T),该类不能实例化,它是一个工具类,可以直接调用里面的方法。

三、Collections写了一个小案例,操作集合List,并对集合进行升序、降序排序:

演示效果一:Collections.sort(List)方法的使用

》升序排序

002-升序排序(1)

点击排序按钮,完成排序操作

003-升序排序(1)

  1. protected void sortNums() {  
  2.     if (!isSort) {  
  3.         for (String str : listArray) {  
  4.   
  5.             list.add(str);  
  6.         }  
  7.         Collections.sort(list);//直接调用Collections静态sort()方法  
  8.         isSort = true;  
  9.     }  
  10.   
  11.     new Thread(new Runnable() {  
  12.   
  13.         @Override  
  14.         public void run() {  
  15.             Message msg = new Message();  
  16.             msg.what = 001;  
  17.             handler.sendMessage(msg);  
  18.   
  19.         }  
  20.   
  21.     }).start();  
  22. }  

sort(List)仅能够对集合中的元素进行升序排序,需要进行其他指定字段或降序排序,需要实现Comparator接口的sort(List,Comparator)方法。

演示效果二:sort(List, Comparator) 方法的使用

》降序排序

004-降序排序

  1. Collections.sort(mList, new Comparator<NewsBean>() {//调用sort()方法,并实现Comparator接口中的compare()方法  
  2.   
  3.             @Override  
  4.             public int compare(NewsBean lhs, NewsBean rhs) {  
  5.                 int value = Integer.valueOf(rhs.getId())  
  6.                         - Integer.valueOf(lhs.getId());  
  7.                 Log.e("降序排序---------------》""" + value);  
  8.                 return value;  
  9.             }  
  10.   
  11.         });  

改为如下,则为升序排序

  1. Collections.sort(mList, new Comparator<NewsBean>() {//调用sort()方法,并实现Comparator接口中的compare()方法  
  2.   
  3.             @Override  
  4.             public int compare(NewsBean lhs, NewsBean rhs) {  
  5.                 int value = Integer.valueOf(lhs.getId())  
  6.                                                 -Integer.valueOf(rhs.getId());  
  7.                 Log.e("升序排序---------------》""" + value);  
  8.                 return value;  
  9.             }  
  10.   
  11.         });  

005-升序排序

关注公众号 扫一扫二维码,加我QQ

如果文章对你有帮助,欢迎点击上方按钮关注作者

来源:TeachCourse每周一次,深入学习Android教程,关注(QQ1589359239或公众号TeachCourse)
转载请注明出处:http://teachcourse.cn/1185.html
分类:Java基础 标签:
集合BroadcastReceiver和Service制作的音乐播放器 集合BroadcastReceiver和Serv
浅谈无序广播和有序广播 浅谈无序广播和有序广播
如何生成类似新浪微博中的长图片 如何生成类似新浪微博中的长图片
关于universal-image-loader如何防止Bitmap OOM的说明 关于universal-image-loader如何

发表评论

呲牙 憨笑 坏笑 偷笑 色 微笑 抓狂 睡觉 酷 流汗 鼓掌 大哭 可怜 疑问 晕 惊讶 得意 尴尬 发怒 奋斗 衰 骷髅 啤酒 吃饭 礼物 强 弱 握手 OK NO 勾引 拳头 差劲 爱你

表情

  1. 4932277
    4932277 【农民】 @回复

    看看!