关于java中的集合
什么是集合
- 集合类存放于java.util包中。
- 集合类型主要有3种:set(集)、list(列表)和map(映射),set和map于Collection。
- 集合存放的都是对象的引用,而非对象本身。所以我们称集合中的对象就是集合中对象的引用。
简而言之,集合就是一个放数据的容器,准确的说是放数据对象引用的容器。
集合不能放基本数据类型只能放对象,而数组时可以放所有数据 - List集合中常用的有ArrayList、Vector和LinkedList
- Set集合中常用的是HashSet和TreeSet
- Map集合中常用的是HashMap和Hashtable
List集合
特点
有序可重复,存储的元素有下标
List常用的实现类
List实现类 | 底层 | 速度 | 效率 | 线程安全 |
---|---|---|---|---|
ArrayList | 数组 | 查询快,增删慢 | 高 | 否 |
Vector | 数组 | 查询快,增删慢 | 低 | 是 |
LinkedList | 双向链表 | 查询慢,增删快 | 高 | 否 |
Set集合
特点
无序不可重复
Set常用的实现类
Set实现类 | 底层 | 特点 |
---|---|---|
HashSet | HashMap(底层为哈希表) | 放到HashSet中的元素相当于放到HashMap中的Key |
TreeSet | TreeMap(底层为二叉树) | 放到TreeSet中的元素相当于放到TreeMap中的Key |
Map集合
特点
- Map集合和Collection集合没有关系
- Map集合以key和value的这种键值对的方式存储元素
- key和value都是存储java对象的内存地址
- 所有Map集合的key都是无序不可重复
Map常用的实现类
Map实现类 | 底层 | 线程安全 |
---|---|---|
HashMap | 哈希表 | 否 |
Hashtable | 哈希表 | 是 |
TreeMap | 二叉树 | 否 |
除此之外还有Properties,继承Hashtable,线程安全,key和value只能存放字符串