集合的基本概念 数组和集合区别数组长度固定集合长度时动态的数组可以包含基本数字类型集合只能包含引用数字类型数组可以按下标直接访问元素集合要通过迭代器等方法集合家族List时有序的集合Set是不重复唯一的集合Queue是队列ArrayList底层通过数组实现集合扩容是创建更大的数组然后通过复制因为是数组所以有数组的优缺点非线程安全LinkedList本质是双向链表有双向链表的优缺点主流一般都用ArrayListMapMap没有实现集合接口存储的是一个键值对集合HashMapJDK1.8之前是数组加链表组成的后面就是数组链表红黑树数组是主体存的是链表或者树的头节点某个桶的链表长度 ≥ 8 且哈希表数组长度 ≥ 64 时才会将该链表转化为红黑树以减少搜索时间如果数组长度 64则只会触发扩容而不做树化LinkedHashMap继承于HashMap然后加了一个双向链表保证了插入和访问顺序TreeMap红黑树自平衡的排序二叉树Collection和CollectionsCollection是Java集合框架中的一个接口它是所有集合类的基础接口。它定义了一组通用的操作和方法如添加、删除、遍历等用于操作和管理一组对象Collections是Java提供的一个工具类位于java.util包中。它提供了一系列静态方法用于对集合进行操作和算法。Collections类中的方法包括排序、查找、替换、反转、随机化等等。这些方法可以对实现了Collection接口的集合进行操作遍历集合的方法对于有索引的集合可以用普通for循环增强for。对于它的缺点肯定是有没有当前索引只能从头到尾遍历修改集合内容时原集合不受影响不能删除元素迭代器遍历适合要删除元素的情况ListIterator遍历这个是Iterator的子类专门位List集合设计的可以正向和反向遍历集合还可以增删改查forEach()方法遍历配合lambda表达式用