java中的集合(collection)

102 阅读2分钟

本文已参与[新人创作礼]活动,一起开启掘金创作之路.

本博客由该视频整理得:视频链接

什么是集合

集合实际上就是一个容器,可以来容纳其它类型的数据。

集合中存储什么

集合不能直接存储基本数据类型,另外集合也不能直接存储java对象,集合当中存储的都是java对象的内存地址。(或者说集合中存储的是引用。) 注意:集合在java中本身是一个容器,是一个对象。集合中任何时候存储的都是"引用"。

不同集合对应着不同的数据结构

在java中每一个不同的集合,底层会对应不同的数据结构。往不同的集合中存储元素,等于将数据放到了不同的数据结构当中。 例如: new ArrayList();创建一个集合,底层是数组。 new LinkedList();创建一个集合对象,底层是链表。new Treeset();创建一个集合对象,底层是二叉树。

两类不同的集合

  1. 单个方式存储元素的超级父接口:
java.util.collection;
  1. 以键值对的方式存储元素,这一类集合中超级父接口:
java.util.Map;

集合相关部分UML图

各集合底层实现:

  1. ArrayList:底层是数组。
  2. LinkedList:底层是双向链表。
  3. Vector:底层是数组,线程安全的,效率较低,使用较少。
  4. HashSet:底层是 HashMap,放到 HashSet集合中的元素等同于放到HashMap.集合key部分了。
  5. TreeSet:底层是 TreeMap,放到 TreeSet集合中的元素等同于放到TreeMap集合 key部分了。
  6. HashMap:底层是哈希表
  7. Hashtable:底层也是哈希表,只不过线程安全的,效率较低,使用较少。
  8. Properties:是线程安全的,并且 key 和value只能存储字符串 String。
  9. TreeMap:底层是二叉树。TreeMap集合的key可以自动按照大小顺序排序。. List集合存储元素的特点: 有序可重复 有序:存进去的顺序和取出的顺序相同,每一个元素都有下标。 可重复:存进去1,可以再存储一个1. Set集合存储元素的特点: 无序不可重复。 无序:存进去的顺序和取出的顺序不一定相同。另外 set集合中元素没有下标。 不可重复:存进去1,不能再存储1了。 SortedSet(SortedMap)集合存储元素特点: 首先是无序不可重复的,但是 SortedSet集合中的元素是可排序的。