Java集合框架中类和接口之间的关系
- Java集合框架中类和接口之间的关系
- Collection常用方法
- Map常用方法
- List、Map、Set的应用场景
Java集合框架中类和接口之间的关系
首先,我发现了这样一幅图比较形象的描述了Java集合框架中类和接口之间的关系:
第一张图(左):
Collection继承了Iterable接口。List是链表 Queue 是队列 Set 是集合,注意集合中的元素是不能重复的。AbstractList是抽象队列,继承了List;Deque是双端队列,继承了Queue; SortedSet是排序集合,继承了Set。
详细看看底下的类我们会发现
1. stack是栈,继承了Vector
2. ArrayList是顺序表,底层是用数组实现的
3. LinkedList是链表,底层是用双向链表实现的
4. PriorityQueue是优先级队列,底层是用堆(二叉树)实现的
5. TreeSet是二叉搜索树(排序)
6. HashSet是哈希表
第二张图(右):
1. HashMap 实现了Map,是哈希表(不具有排序功能)
2. TreeMap 实现了SortMap,是二叉搜索树(具有排序功能)
ps:
Map存放数据根据key的值,进行哈希。然后存放到哈希表的对象的index下标的位置
key值一般不重复
哈希表的CURD的时间复杂度是O(1)
Collection常用方法
boolean add(E e); |
将元素e放入集合中 |
void clear(); |
删除集合中所有元素 |
boolean isEmpty(); |
判断集合是否为空 |
boolean remove(Object e); |
如果元素e出现在集合中,删除其中一个 |
int size(); |
返回集合中元素个数 |
Object[] toArray(); |
返回一个装有所有集合中元素的数组 |
Map常用方法
V get(Object k);
|
根据指定的 k 查找对应的 v |
V getOrDefault(Object k, V defaultValue);
|
根据指定的 k 查找对应的 v,没有找到用默认值代替 |
V put(K key, V value)
|
将指定的 k-v 放入 Map |
boolean containsKey(Object key)
|
判断是否包含 key |
boolean containsValue(Object value)
|
判断是否包含 value |
Set<Map.Entry<K, V>> entrySet()
|
将所有键值对返回 |
boolean isEmpty()
|
判断是否为空 |
int size()
|
返回键值对的数量 |
List、Map、Set的应用场景
补充。。。