集合概述
什么是集合?有什么作用
所有的集合类和集合节后都在java.util
包下
集合不能直接存储基本数据类型,另外集合也不能直接存储java对象,集合当存储的都是java对象的内存地址。(或者说集合中存储的都是引用)
list.add(100);//自动装箱Integer
注意:
- 集合在java中本身是一个容器,是一个对象。
- 集合中任何时候存储的都是“引用”。
在java中每一个不同的集合,底层会对应不同的数据结构。往不同的集合中存储元素等于将数据放到不同的数据结构中。
实现类 | 底层数据结构 | 描述 |
---|---|---|
ArrayList | 数组 | |
LinkedList | 双向链表 | |
Vector | 数组 | 线程安全的,效率较低,使用较少 |
HashSet | HashMap(哈希表) | 放到HashSet集合中的元素等同放到HashMap的key部分 |
TreeSet | TreeMap(二叉书) | 放到TreeSet集合中的元素等同放到TreeMap的key部分 |
HashMap | 哈希表 | |
Hashtable | 哈希表 | 线程安全,效率较低,使用较少 |
Properties | 哈希表 | 继承Hashtable,线程安全,并且key和value只能存储字符串String |
TreeMap | 二叉树 | 集合的Key可以自动按照大小顺序排序 |