摘要:我经常将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
二、Collections是java.util包中提供的一个封装类,类中包装了很多操作集合的静态方法,比如比较常用的:sort(List
三、Collections写了一个小案例,操作集合List,并对集合进行升序、降序排序:
演示效果一:Collections.sort(List)方法的使用
》升序排序
点击排序按钮,完成排序操作
- protected void sortNums() {
- if (!isSort) {
- for (String str : listArray) {
- list.add(str);
- }
- Collections.sort(list);//直接调用Collections静态sort()方法
- isSort = true;
- }
- new Thread(new Runnable() {
- @Override
- public void run() {
- Message msg = new Message();
- msg.what = 001;
- handler.sendMessage(msg);
- }
- }).start();
- }
sort(List)仅能够对集合中的元素进行升序排序,需要进行其他指定字段或降序排序,需要实现Comparator接口的sort(List,Comparator)方法。
演示效果二:sort(List, Comparator super T>) 方法的使用
》降序排序
- Collections.sort(mList, new Comparator<NewsBean>() {//调用sort()方法,并实现Comparator接口中的compare()方法
- @Override
- public int compare(NewsBean lhs, NewsBean rhs) {
- int value = Integer.valueOf(rhs.getId())
- - Integer.valueOf(lhs.getId());
- Log.e("降序排序---------------》", "" + value);
- return value;
- }
- });
改为如下,则为升序排序
- Collections.sort(mList, new Comparator<NewsBean>() {//调用sort()方法,并实现Comparator接口中的compare()方法
- @Override
- public int compare(NewsBean lhs, NewsBean rhs) {
- int value = Integer.valueOf(lhs.getId())
- -Integer.valueOf(rhs.getId());
- Log.e("升序排序---------------》", "" + value);
- return value;
- }
- });
你可能感兴趣的文章
来源:TeachCourse,
每周一次,深入学习Android教程,关注(QQ158#9359$239或公众号TeachCourse)
转载请注明出处: https://www.teachcourse.cn/1185.html ,谢谢支持!
转载请注明出处: https://www.teachcourse.cn/1185.html ,谢谢支持!
分类:Java基础
标签:Collections