集合: 存放引用数据类型的容器 主要学增删改查
Collection: 集合,是一个接口,继承了Iterable,里面有很多方法
List:也是一个接口,继承了Collection
特点: 有序,可以重复
Set:也是一个接口,继承了Collection
特点:无序,不重复
Map:
泛型:指的就是容器中元素的数据类型 <数据类型>
好处:就是省去了获取元素的时候,类型转换
List接口: 里面有很多方法(增删改查)
ArrayList:(add、get、size()、sort()最常用)
特点: 内存空间连续
add()
remove():只能删除一个,如果有重复的数据,删除第一个
get():通过索引获取
set():
size():获取元素个数的
sort()
contains(Object o)
ArrayList: 底层是Object数组。所有的增删改查都是基于数组进行的
size: ArrayList里面标记元素个数的
添加的逻辑:
如果底层的数组元素满了,就要扩容,扩容1.5倍,然后将元素添加到容器
LinkedList: 链表
链表实现了 list 和 Deque两个接口
特点:内存空间不连续
底层是Node,分为三部分 前一部分 数据 后一部分
Deque:队列, 先进先出
Stack:栈: 先进后出
ArrayList和LinkedList区别:
ArrayList:查询快,增删慢
LinkedList:查询慢,增删快
HashSet: 实现了Set接口
无序: 没有索引
不重复:
add(): 添加了重复元素,只显示一个
remove()
hashSet和hashTable区别:
hashSet线程不安全 效率高
Hashtable 线程安全 效率低
迭代器:iterator
- hasNext
-next
增强for循环 foreach循坏
实现了Iterable接口的都可以用
for(泛指数据类型 变量: 集合名称){
操作变量
}
优点:简单明了
缺点:不能操作索引
工具类 Collections
- sort
- reverse
- shuffle
- min
- max
- addAll