随笔分类 - java集合容器
摘要:概述 Map 接口是 java 中两大集合接口之一,相对于 Collection,Map 接口结构规定了所有键值对形式的集合容器。同时,它与 Collection 的子接口 Set 又密切相关,Map 一部分实现依赖于 Set 集合,而 Set 集合的一些实现也依赖于 Map。 Map 接口下有四个
阅读全文
摘要:概述 HashMap 是 Map 接口下一个线程不安全的,基于哈希表的实现类。由于他解决哈希冲突的方式是分离链表法,也就是拉链法,因此他的数据结构是数组+链表,在 JDK8 以后,当哈希冲突严重时,HashMap 的链表会在一定条件下转为红黑树以优化查询性能,因此在 JDK8 以后,他的数据结构是数
阅读全文
摘要:概述 一个 java 程序猿比较广为人知的小知识 ,是 ArrayList 和 LinkedList 最好使用迭代器删除,而不是遍历删除。 当我们尝试使用 for 循环或者 forEach 进行删除的时候,往往会出现一些意外的情况,导致集合全部删除失败。关于这点,我一直保持知其然不知其所以然的状态,
阅读全文
摘要:概述 LinkedList 是一个不保证线程安全的、基于双向的双端链表的实现的 List 集合。LinkedList 继承了 AbstractSequentialList 抽象类,在实现 List 接口的同时还实现了 Deque 接口,也正因如此,它也具有队列的特性与方法。 这是关于 java 集合
阅读全文
摘要:概述 ArrayList 是 List 接口下一个基于可扩展数组的实现类,它和它的兄弟类 Vector 有着一样的继承关系,也都能随机访问,但是不同的是不能保证线程安全。 这是关于 java 集合类源码的第三篇文章。往期文章: java集合源码分析(一):Collection 与 AbstractC
阅读全文
摘要:概述 List 应该接口是 Collection 最常被使用的接口了。其下的实现类皆为有序列表,其中主要分为 Vector,ArrayList,LinkedList 三个实现类,其中 Vecotr 又拥有子类 Stack。 从线程安全来说,List 下拥有线程安全的集合类 Vector;从数据结构来
阅读全文
摘要:概述 我们知道,java 中容器分为 Map 集合和 Collection 集合,其中 Collection 中的又分为 Queue,List,Set 三大子接口。 其下实现类与相关的实现类子类数量繁多。我们仅以最常使用的 List 接口的关系为例,简单的画图了解一下 Collection 接口 L
阅读全文
