详解 Collection集合
(请关注 本人“集合总集篇”博文——《详解 集合框架》)
首先,本人来讲解下 Collection集合的继承体系:
Collection集合 的继承体系:
Collection接口是集合框架 的 顶层接口之一,而Collection接口的继承体系如下所示:
父接口:
- Iterable接口
子接口:
- List泛型接口,
- BeanContext,
- BeanContextServices,
- BlockingDeque泛型接口,
- BlockingQueue泛型接口,
- Deque泛型接口,
- NavigableSet泛型接口
- Queue泛型接口
- Set泛型接口
- SortedSet泛型接口
子实现类:
- ArrayList
- LinkedList
- Vector
- HashSet
- LinkedHashSet,
TreeSet
AbstractCollection, AbstractList, AbstractQueue, AbstractSequentialList, AbstractSet, ArrayBlockingQueue, ArrayDeque, AttributeList, BeanContextServicesSupport, BeanContextSupport, ConcurrentLinkedQueue, ConcurrentSkipListSet, CopyOnWriteArrayList, CopyOnWriteArraySet, DelayQueue, EnumSet, JobStateReasons, LinkedBlockingDeque, LinkedBlockingQueue, PriorityBlockingQueue, PriorityQueue, RoleList, RoleUnresolvedList, Stack, SynchronousQueue,
上示为Collection接口的 实现类 和 子接口。
但是,在我们今后的学习工作过程中,主要应用的 实现类 和 子接口 如下:
Collection集合 的常用API:
本人现在按照功能来介绍一下这个接口的API,以便后续内容的讲解:
- 添加功能:
- boolean add(Object obj):
添加一个元素- boolean addAll(Collection c):
添加一个集合的元素 (给一个集合添加进另一个集合中的所有元素)
- 删除功能:
- void clear():移除所有元素
- boolean remove(Object o):
移除一个元素- boolean removeAll(Collection c):
移除一个集合的元素(移除一个以上返回的就是true) 删除的元素是两个集合的交集元素 如果没有交集元素 ,
则删除失败 返回false
- 判断功能:
- boolean contains(Object o):
判断集合中是否包含指定的元素- boolean containsAll(Collection c):
判断集合中是否包含指定的集合元素
(这个集合 包含 另一个集合中所有的元素才算包含 才返回true)
比如:1,2,3 containsAll 1,2=true
1,2,3 containsAll 2,3,4=false- boolean isEmpty():
判断集合是否为空
- 把集合转换为数组:
- Object[] toArray()
- 长度功能:
- int size():元素的个数
- 交集功能:
- boolean retainAll(Collection c):获取两个集合的交集元素(交集:两个集合都有的元素)
- 获取功能:
- Iterator
iterator()(重点)
那么,如果我们想要遍历一个集合,按照我们之前的手段,肯定是先把集合转换成一个数组,然后遍历这个数组。
但是,这样一来,在特定的情况下,是很麻烦的
所以Java提供了一个机制来解决这个问题 —— 迭代器:
迭代器:
请关注本人博文——《详解 迭代器 —— Iterator接口、 ListIterator接口 与 并发修改异常》
那么,现在,本人来通过两篇博文来分别讲解下 Collection集合的继承体系中 两个重要子接口 —— List接口 和 Set接口:
List接口:
请关注本人博文《详解 List接口》
Set接口:
请关注本人博文《详解 Set接口》
那么,本篇博文的主要内容就讲解完了,若是对上述知识点或代码有任何疑惑、意见或者建议,请在下方评论区提出,本人将尽早予以答复,觉得有所帮助的同学请留下小赞赞,谢谢!!!
(集合总集篇链接:https://www.cnblogs.com/codderYouzg/p/12416560.html)