Java集合框架中类和接口之间的关系

  • Java集合框架中类和接口之间的关系
  • Collection常用方法
  • Map常用方法
  • List、Map、Set的应用场景

Java集合框架中类和接口之间的关系

首先,我发现了这样一幅图比较形象的描述了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)

Java集合框架中类和接口之间的关系

 

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的应用场景

补充。。。