1. 集合整体框架
(1)单列集合 Collection 接口
List 存储有序(有索引)接口 可以存储重复值
ArrayList 数组
Vector 数组
LinkedList 链表
Set 存储无序 (没有索引) 接口 不可以存储重复值
HashSet 哈希表结构
TreeSet 二叉树结构
(2)双列集合 Map 接口
HashMap 哈希表结构
TreeMap 二叉树结构
2. 数组和集合对比区别
<1> 存储数据类型的区别:
数组: 可以存放引用数据类型,也可以存放基本数据类型。
集合: 只可以存放引用数据类型,
存储基本数据类型的时候也自动装箱成引用数据类型
<2> 开辟空间大小的区别
数组: 开辟空间的大小是 固定的。
集合: 开辟空间大小,随着你存放元素的多少自动改变。
<3> 数组和集合的存储数据统一性区别
数组: 只可以存储定义的数据类型的数据。
集合: 如果没有特别规范类型,理论上什么类型的数据都可以添加。
3. 单列集合 Collection 中常见的方法
(1)给集合添加数据的方法: add()
(2)给集合移除数据的方法: remove()
(3)判断集合是否为空的方法: isEmpty()
(4)判断集合是否包含某个元素的方法: contains();
(5)清空集合的内容 clear()
(6)查询集合的长度 : size()
(7)把集合转化为数组的方法:toArray()
(8)获取指定索引的元素 get(索引值)
4.linkedList集合 (底层链表结构实现)
linkedList集合 增删改效率非常高。查询慢。
ArrayList 集合,增删改效率底,查询快
添加数据
addFrist();
addLast();
移除数据
removeFrist();
removeLast();
获取数据
getFrist()
getLast();
5.ArrayList 和 LinkedList 的区别
<1> 底层实现方式不同
ArrayList 底层是数组结构
LinkedList 底层是链表结构
<2> 操作效率不同
ArrayList 查询效率高(有数组索引决定)
LinkedList 增删改效率高(链表结构决定)
6. Map 集合常见的方法
map集合是双列集合。它里面的内容,是键值对应的形式存储的数据。
每一个键对应一个值,形成一个整体的键值对。
添加数据: put(key,value)
获取数据: get(key)
移除数据: remove(key)
获取长度: size()
判断是否包含某数据: containsKey(key)
获取建的集合: keySet();
获取值的集合: values();
7.集合的遍历的三种方式,及区别
for 循环遍历
只适用于单例集合
可以做删除和添加集合数据的操作,但是需要改变索引长度.
不推荐操作删除和添加数据.
foreach 增强for循环遍历
单例集合和双列集合都可以
不可以操作,删除数据.
iterator 迭代器遍历。
单例集合和双列集合都可以
可以实现删除数据.但是需要使用迭代器自己的方法.
不然会出现,并发修改异常!
8. 集合泛型
定义: 就是给你的集合规定指定的类型.
一旦添加了泛型,你的集合,就不能添加其他类型的数据了.
例如:
List<String> list = new ArrayList();