本文已参与[新人创作礼]活动,一起开启掘金创作之路.
本博客由该视频整理得:视频链接
什么是集合
集合实际上就是一个容器,可以来容纳其它类型的数据。
集合中存储什么
集合不能直接存储基本数据类型,另外集合也不能直接存储java对象,集合当中存储的都是java对象的内存地址。(或者说集合中存储的是引用。) 注意:集合在java中本身是一个容器,是一个对象。集合中任何时候存储的都是"引用"。
不同集合对应着不同的数据结构
在java中每一个不同的集合,底层会对应不同的数据结构。往不同的集合中存储元素,等于将数据放到了不同的数据结构当中。 例如: new ArrayList();创建一个集合,底层是数组。 new LinkedList();创建一个集合对象,底层是链表。new Treeset();创建一个集合对象,底层是二叉树。
两类不同的集合
- 单个方式存储元素的超级父接口:
java.util.collection;
- 以键值对的方式存储元素,这一类集合中超级父接口:
java.util.Map;
集合相关部分UML图
各集合底层实现:
- ArrayList:底层是数组。
- LinkedList:底层是双向链表。
- Vector:底层是数组,线程安全的,效率较低,使用较少。
- HashSet:底层是 HashMap,放到 HashSet集合中的元素等同于放到HashMap.集合key部分了。
- TreeSet:底层是 TreeMap,放到 TreeSet集合中的元素等同于放到TreeMap集合 key部分了。
- HashMap:底层是哈希表
- Hashtable:底层也是哈希表,只不过线程安全的,效率较低,使用较少。
- Properties:是线程安全的,并且 key 和value只能存储字符串 String。
- TreeMap:底层是二叉树。TreeMap集合的key可以自动按照大小顺序排序。. List集合存储元素的特点: 有序可重复 有序:存进去的顺序和取出的顺序相同,每一个元素都有下标。 可重复:存进去1,可以再存储一个1. Set集合存储元素的特点: 无序不可重复。 无序:存进去的顺序和取出的顺序不一定相同。另外 set集合中元素没有下标。 不可重复:存进去1,不能再存储1了。 SortedSet(SortedMap)集合存储元素特点: 首先是无序不可重复的,但是 SortedSet集合中的元素是可排序的。