动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

你不得不学的Java集合框架

06-29 17:45 267浏览
举报 T字号
  • 大字
  • 中字
  • 小字

说到Java集合框架我们首先要介绍一下集合的概念。集合论是现代数学中重要的基础理论。计算机科学作为一门现代科学因其与数学的缘源,自然其中的许多概念也来自数学,集合是其中之一。集合可以看作是一个容器,用来储存对象信息。我们都知道数组可以用来保存多个数据或者对象的,那为什么java中还有着比如List,Map,Set这样的集合类呢?说明数组有一定的局限性,比如数组长度是固定的,不能自动增长。集合就在这种情况下应运而生了。

Java集合框架(Java Collections Framework,JCF)是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。

算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序。这些算法被称为多态,那是因为相同的方法可以在相似的接口上有着不同的实现。

  • 接口

接口是代表集合的抽象数据类型。例如 Collection、List、Set、Map 等。之所以定义多个接口,是为了以不同的方式操作集合对象Java中的集合类可以分为两大类:一类是实现Collection接口;另一类是实现Map接口。Collection是一个基本的集合接口,Collection中可以容纳一组集合元素(Element)。Map没有继承Collection接口,与Collection是并列关系。Map提供键(key)到值(value)的映射。一个Map中不能包含相同的键,每个键只能映射一个值。

从上面的图可以看到Set,Queue,List都实现了Collection的接口。Collection是集合框架中一个最顶层的基本接口, 提供了一个数据集的基本描述, 在官方API中并没有提供其直接实现类, 而是在其基础上提供了进一步的限制接口, 即List, Set, Queue,这样实现了最大通用性。Collection提供了数据操作的基本方法, 如add(), remove(), size(), clear()等; 同时, 其还继承了Iterable接口, 这个接口是用于使用迭代器遍历集合用的, 使用迭代器遍历集合的优点是我们不必知道集合的内部结果,集合的内部结构、状态由Iterator来维持,通过统一的方法hasNext(), next()来判断和获取下一个元素。

  • 实现(类)

实现指的是接口的实现类,是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构,例如:ArrayList、LinkedList、HashSet、HashMap。很好的列出了平时重点所用的实现类。下面的表格列举了几个重点的实现类:

三、算法

算法指的是以Collections为主的提供的一系列对集合的操作, 参见下图, 列出了其提供的常用算法

下面对上述方法进行一些简单解释

1.sort(List): 使用归并排序, 保证NlogN的时间复杂度和稳定性

2.binarySearch(List, Object): 在一个有序的List中使用二分查找

3.reverse(List): 逆转List

4.shuffle(List): 将List中的元素随机重排

5.fill(List, Object): 使用指定值(Object)覆盖List中所有元素

6.copy(List dest, List src): 拷贝

7.min(Collection): 返回最小值

8.max(Collection): 返回最大值

9.rotate(List list, int distance): 将List中元素旋转指定distance

10.replaceAll(List list, Object oldVal, Object newVal): 将List里出现的所有oldVal替换为newVal

11.indexOfSubList(List source, List target): 返回source中与target匹配的第一个子项的首元素索引

12.lastIndexOfSubList(List source, List target): 返回最后一个匹配子项的首元素索引

13.swap(List, int, int): 交换指定位置的两个元素

14.frequency(Collection, Object): 找出指定元素出现次数

15.disjoint(Collection, Collection): 判断两个集合是否包含相同元素(即集合是否相交)

16.addAll(Collection, T...): 将指定元素添加到指定集合中

集合框架的优势:

1.集合框架通过提供有用的数据结构和算法使你能集中注意力于你的程序的重要部分上,而不是为了让程序能正常运转而将注意力于低层设计上。通过这些在无关API之间的简易的互用性,使你免除了为改编对象或转换代码以便联合这些API而去写大量的代码。

2.集合框架通过提供对有用的数据结构和算法的高性能和高质量的实现使你的程序速度和质量得到提高。因为每个接口的实现是可互换的,所以你的程序可以很容易的通过改变一个实现而进行调整。另外,你将可以从写你自己的数据结构的苦差事中解脱出来,从而有更多时间关注于程序其它部分的质量和性能。

3.许多API天生的有对集合的存储和获取。在过去,这样的API都有一些子API帮助操纵它的集合内容,因此在那些特殊的子API之间就会缺乏一致性,你也不得不从零开始学习,并且在使用时也很容易犯错。而标准集合框架接口的出现使这个问题迎刃而解。

Java集合框架拥有了这些优点,只要我们合理地使用它,它就会成为我们手中的得力工,帮助我们在工作出色地完成任务。工欲善其事,必先利其器。只有牢牢掌握java集合框架,我们才能够写出更加优秀和高效的程序。

0人推荐
共同学习,写下你的评论
0条评论
轻言绕指柔
程序员轻言绕指柔

14篇文章贡献84145字

作者相关文章更多>

推荐相关文章更多>

Java数据结构

HelloWorld10-31 08:24

浅谈MySQL中SQL优化的常用方法

军哥08-12 23:29

五分钟读懂UML类图

江湖人称小李白12-10 10:41

MyBatis开发框架的四大核心

IT逐梦者08-17 21:43

一次搞定continue,break和return

HelloWorld11-06 11:19

发评论

举报

0/150

取消