集合:存放引用数据类型的容器
Collection:集合是一个接口
List:有序,可以重复 Set:无序,不可以重复 ArrayList:
add:增
remove:删(重复数据只删除第一个)
set:改
get:查
size:获取元素个数
sort:排序
List接口:
ArrayList:
特点:内存空间连续 add() remove(): 只能删除一个,如果有重复的数据,删除 get() : 通过索引获取 set(): size(): 获取元素个数的 sort() contains(Object o)
ArrayList: 底层是Object数组。所有的增删改查都是基于数组进行的。
size: ArrayList里面标记元素个数的。
添加的逻辑:如果底层的数组元素满了,就要扩容,扩容1.5倍。然后将元素添加到容器
LinkedList: 链表 链表实现了 List 和 Deque两个接口 特点:内存空间不连续。 底层是Node, 分为3部分 前一部分 数据 后一部分 Deque: 队列, 先进先出 Stack: 栈:先进后出
ArrayList和LinkedList区别: ArrayList: 查询快,增删慢 LinkedList 查询慢,增删快
HashSet: 实现了Set接口。 无序: 没有索引 不重复:
hashSet和hashtable区别: hashSet线程不安全 效率高 Hashtable 线程安全,效率低
迭代器:iterator hasNext next
增强for循环 foreach循环 实现了Iterable接口的都可以用 for(泛型数据类型 变量 : 集合名称){ 操作变量 } 优点: 简单明了 缺点: 不能操作索引
HashMap: 双列集合 <K,V> put 如果键存在就是修改,不存在就是添加。 get remove size keySet
工具类 Collections sort reverse shuffle min max addAll