Java中的Collection包是JDK中非常重要的一个包, 也是面试中考察的重点, 本文自顶向下的对Collection包的常用数据结构之间的关系结构到Collection包中的常用类的实现原理的知识点进行一定的整理, 供自己和大家复习使用.
Collection包的整体结构
Collection自身是一个接口, 是对集合这一概念的抽象, 提供的常用API有:
- add(Object obj) 向Collection添加元素
- remove(obj) 如果obj在集合中, 将其移除
- contains(obj) 判断是否包含
- clear()
- size()
- isEmpty()
- iterator() 返回对集合元素的迭代器
- addAll(Collection<? extends E> c) 将一个集合的元素添加到该集合中
- containsAll(Collection<? extends E> c)
- retainAll(Collection c) 只保留集合里面包含的
- removeIf(Predicate<? super E> filter) [这个方法很香, 不用自己迭代了]
Collection下, 有三个重要的接口分别是Set
, List
, Map
, 所代表的分别是无重复的集合, 有序集合和键值对集合的