开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1230|回复: 0
收起左侧

[JS例程分享] Java集合概述Collection与Collections

[复制链接]
发表于 2017-8-28 09:44:08 | 显示全部楼层 |阅读模式   重庆市重庆市
1、java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
具体的张开等请等下次做分解。文中有一个需要注意的地方,map也是一个集合,但它不是继承与Collection接口,这个问题,在面试的时候,要特别注意面试官给你挖的坑。
2、java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。而且Collection 提供一系列静态方法实现对各种集合的搜索、排序、线程安全等操作。
Collections:
1、排序(Sort)
2、混排(Shuffling)
3、反转(Reverse)
4、替换所以的元素(Fill)
5、拷贝(Copy)
6、返回Collections中最小元素(min)
7、返回Collections中最小元素(max)
8、lastIndexOfSubList(返回指定源列表中最后一次出现指定目标列表的起始位置)
9、IndexOfSubList(返回指定源列表中第一次出现指定目标列表的起始位置)
10、Rotate(根据指定的距离循环移动指定列表中的元素)
这10个方法我们将会一一张开,但我们今天主要说排序(sort),排序大家都不陌生,有大家熟悉的一些算法排序,比如冒泡等。我们看下java的API里面对sort是怎么定义的。
Java集合概述Collection与Collections
Java集合概述Collection与Collections
我们看个例子:
int array[] = {112, 111, 23, 456, 231 };
for(int i = 0; i < array.length; i++){
list.add(array);
}
Collections.sort(list);
for (int i = 0; i < array.length; i++) {
System.out.println(li.get(i));
}
那这个输出是多少?
结果是:
23 111 112 231 456
故我们很多时候说要对一个数组进行排序的时候,我们使用的sort方法,已可以解决一大部分的问题,当然更复杂或者纯算法的排序,不在本次的讨论之中。
那sort到底是升序还是降序的呢?
其实这个是我们自己就可以做的定义,例子说话
public class Test {
private static final Logger LOGGER = LoggerFactory.getLogger(Test.class);
public static void main(String[] args) {
List<TestA> listA = new ArrayList<TestA>();
//TestA 即是上面类
TestA a1 = new TestA();
a1.setName("小胖A");
a1.setOrder(1);
listA.add(a1);
TestA a5 = new TestA();
a5.setName("小胖B");
a5.setOrder(5);
listA.add(a5);
TestA a3 = new TestA();
a3.setName("小胖C");
a3.setOrder(3);
listA.add(a3);
LOGGER.info("listA 排序前:" + listA.toString());
Collections.sort(listA, new Comparator<TestA>() {
@Override
public int compare(TestA o1, TestA o2) {
//升序
return o1.getOrder().compareTo(o2.getOrder());
}
});
LOGGER.info("listB 升序排序后:" +listA.toString());
Collections.sort(listA, new Comparator<TestA>() {
@Override
public int compare(TestA o1, TestA o2) {
//降序
return o2.getOrder().compareTo(o1.getOrder());
}
});
LOGGER.info("listB 降序排序后:" +listA.toString());
}
}
结果呢?大家自行在IDE工具中进行编译一下看下结果。里面有注意的是这是因为String本身含有compareTo方法,所以可以直接调用sort方法,所以要让类TestA实现Comparable方法。这个是我们要注意的地方。
本文出自网络!由甲爪广告联盟(http://www.jiazhua.com)整理编辑! 转载请注明!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表