集合
    
    
    
    集合框架结构体系图
   
    
    
     
   
    
    
    向集合中添加单个或批量数据
   
    
     Collection作为集合框架的顶层设计,它里面一共抽象出了17个公共方法
    
    
    
    
    
     这些方法可以分为三类
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    集合是如何删除数据的
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    集合批量删除的四种方法
   
     
   
    
    
    1.removeAll方法
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    2.retainAll方法
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    3.removeIf方法
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    4.clear方法
   
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    总结
   
     
   
    
    
    ArrayList 特点及优缺点
   
     
   
    
    
    1.介绍 ArrayList(最频繁的容器)
   
    
    
    
    
    
    
     
   
    
    
    ArrayList的3个特点
   
    
    
    1.有序
   
    
    
     
   
    
    
    2.可重复
   
     
   
    
    
    3.可存null
   
     
   
    
    
    ArrayList的优缺点
   
    
    
    优点:查询快
   
     
   
    
    
    
    
     
   
    
    
    缺点:增删慢
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    小知识点
   
    
    
    什么是size(大小),什么是capacity(容量)
   
    
    
     
   
    
    
    ArrayList的创建方式
   
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    ArrayList 的常用方法
   
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    ArrayList总结
   
    
    
     
   
    
    
    LinkedList 特点及优缺点
   
     
   
    
    
    介绍 LinkedList
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    LinkedList的三个特点
   
    
    
    1.有序
   
     
   
    
    
    2.可重复
   
     
   
    
    
    可为null
   
     
   
    
    
    LinkedList 的优缺点
   
    
    
    优点:增删快
   
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    缺点:查询慢
   
    
    
    
    
    
    
     
   
    
    
    LinkedList 常用方法
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    LinkedList 与 ArrayList 的区别
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    总结
   
    
    
    
    
    
    
     
   
    
    
    HashMap 特点及优缺点
   
     
   
    
    
    HashMap 介绍
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    HashMap 的特点
   
    
    
    1.无序
   
    
    
     
   
    
    
    2.key可以为null
   
    
    
    
    
    
    
     
   
    
    
    3.key不可以重复
   
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    4.哈希冲突
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    5.链化<==>树化
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    6.扩容
   
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    HashMap 的常用方法
   
    
    
    
    
    
    
     
   
    
    
    总结
   
    
    
    
    
    
    
     
   
    
    
    LinkedHashMap 特点及优缺点
   
     
   
    
    
    LinkedHashMap 介绍
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    添加顺序
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    访问顺序
   
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    LinkedHashMap 常用方法
   
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    总结
   
    
    
    
    
    
    
    
    
     
   
    
    
    TreeMap 特点及优缺点
   
     
   
    
    
    TreeMap 介绍
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    对key排序
   
    
    
     
   
    
    
    红黑树的5个性质
   
    
    
    1.每个节点非黑即红
   
     
   
    
    
    2.根节点是黑色
   
     
   
    
    
    3.叶节点是黑色
   
     
   
    
    
    4.每个红节点下的子节点是黑色
   
     
   
    
    
    5.任意节点到叶节点的每一条路径上的黑色节点数相同
   
    
    
     
   
    
    
    举例
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    验证
   
    
    
    
    
     
   
    
    
    无序性
   
    
    
    
    
    
    
     
   
    
    
    key不可为null
   
    
    
    
    
    
    
    
    
     
   
    
    
    key唯一
   
    
    
    
    
    
    
    
    
     
   
    
    
    TreeMap 的常用方法
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    总结
   
    
    
    
    
    
    
    
    
     
   
    
    
    HashSet 特点及优缺点
   
     
   
    
    
    介绍 HashSet
   
     
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
     
   
    
    
    验证
   
    
    
     
   
    
    
    HashSet 特点
   
    
    
    
    
     
   
    
    
    HashSet 常用方法
   
    
    
    
    
    
    
    
    
     
   
    
    
    HashSet 与 HashMap 的区别
   
    
    
    
    
     
   
    
    
    总结
   
    
    
    
    
    
    
     
   
    
    
    LinkedHashSet 特点及优缺点
   
     
   
    
    
    1.介绍 LinkedHashSet
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    验证
   
    
    
     
   
    
    
    2.LinkedHashSet 特点
   
    
    
    
    
     
   
    
    
    3.LinkedHashSet 常用方法
   
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    4.LinkedHashSet 与 LinkedHashMap 的区别
   
    
    
     
   
    
    
    总结
   
    
    
    
    
    
    
     
   
    
    
    TreeSet 特点及优缺点
   
     
   
    
    
    1. 介绍 TreeSet
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    验证
   
    
    
     
   
    
    
    2.TreeSet 特点
   
    
    
    
    
     
   
    
    
    3. TreeSet 常用方法
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    4.开发中 HashSet LinkedHashSet TreeSet 之间如何选择
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    总结
   
    
    
    
    
    
    
     
   
    
    
    快速失败 (fail-fast)机制
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    解决方案
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    总结
   
    
    
    
    
     
   
    
    
    ConcurrentHashMap 特点及优缺点
   
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    1.同步
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    统计元素个数
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    3.多线程协同扩容
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    4.key,value 不能为 null
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    5.ConcurrentHashMap 与 HashMap 的区别
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    6.ConcurrentHashMap 常用方法
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    总结
   
    
    
    
    
    
    
     
   
    
    
    为什么ConcurrentHashMap 只给头结点加锁
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
   
    
    
    总结
   
     
   
 
