加锁阻塞实现线程安全 : 当多线程操作 Java 集合时 , 使用 synchronized 关键字 加锁阻塞任何对集合的操作 , 修改完毕后 , 解除阻塞 , 防止出现多线程操作 , 出现数据污染 ;...; 元素类需要重写 hashCode 和 equals 两个方法 , 保证唯一性 ;
② TreeSet : 底层数据结构是 红黑树 ; 元素有序 , 唯一 ; 元素类需要重写 hashCode 和...Hash : 使用哈希表实现 , 如 HashSet , HashMap , 目的是为了保证其元素唯一性 ;
① 特点 : 元素唯一 ;
① 定制 : 需要保证唯一元素类需要重写 hashCode 和...集合元素修改 ( 加锁并复制 ) : 顾名思义就是在修改集合中的元素时 , 不直接操作当前的集合 , 而是先把集合拷贝一份 , 然后在新的集合中进行修改操作 , 最后将引用指向新的集合 ;
① 修改操作...缺陷 :
① 性能 : 每次修改集合 , 都要将整个集合复制一次 , 如何集合很大 , 并且修改频繁 , 那么会导致性能很低 ;
② 实时性 : 读取的时候 , 有可能线程正在被修改 , 读取完毕后 ,