Java 集合框架图 List、Set、Map可以看做集合的三大类 List List代表一种线性表的数据结构, List集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问。 ArrayList则是一种顺序存储的线性表。ArrayList 底层采用数组来保存每个集合元素。 ...
分类:
编程语言 时间:
2018-07-10 21:31:52
阅读次数:
209
[TOC] 本文主要参考: 1. 《疯狂Java讲义精简版》 李刚 2. "HashMap实现原理分析" 有哪些集合类 一图终结 Set,Queue和List都是继承了Collection,即大多数集合类的根接口。而Map则是单独的另一个接口发散出来。 Set类 HashSet:用哈希算法存储集合中 ...
分类:
编程语言 时间:
2018-07-07 15:48:57
阅读次数:
186
早在Java 2中之前,Java就提供了特设类。比如:向量(Vector)、栈(Stack)、字典(Dictionary)、哈希表(Hashtable)这些类(数据结构)用来存储和操作对象组。虽然这些类都非常有用,但是它们缺少一个核心的,统一的主题。集合框架是为表示和操作集合而规定的一种统一的标准的 ...
分类:
编程语言 时间:
2018-07-06 17:51:45
阅读次数:
149
简介 WeakHashMap是Java集合框架里的一员,从名字可以看出它是某种 Map。它的特殊之处在于 WeakHashMap 里的entry可能会被GC自动删除,即使程序员没有调用remove()或者clear()方法。 更直观的说,当使用 WeakHashMap 时,即使没有显示的添加或删除任 ...
分类:
编程语言 时间:
2018-06-23 11:36:32
阅读次数:
217
先说结论:在用for遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除),则会抛出ConcurrentModificationException。在单线程下用迭代器遍历修改,则不会报错。在多线程环境下则会报错。 原理:迭代器在遍历时直接访问集合中的内容, ...
分类:
编程语言 时间:
2018-06-21 21:11:08
阅读次数:
303
show me code! 区别代码里说 public static void testHashSet() { HashSet set = new HashSet(); set.add("张飞"); set.add("张辽"); set.add("张让"); set.add("张让"); set..... ...
分类:
编程语言 时间:
2018-06-07 21:45:13
阅读次数:
162
show Me the code! 常用的Map 下 有treeMap,hashmap,hashtable,linkhashMap,下列代码就对以上四种做了比较 并简单说明其底层实现。 hashMap 底层数据结构展示图 hashMap 是由数组与单链表组合而成,而linkhashmap 大致与上相 ...
分类:
编程语言 时间:
2018-06-06 21:41:35
阅读次数:
152
Java 集合框架 最初常用的数据结构类:Vector 、Stack 、Hashtable 、BitSet 与 Enumeration 接口。 将集合的接口与实现分离 Queue接口 Java 集合类库将接口与实现分离。 看队列(queue)是如何分离的。队列接口指出可以在尾部添加元素,在队列的头部 ...
分类:
编程语言 时间:
2018-06-06 21:34:21
阅读次数:
219
Java集合框架是为了表示和操作集合类型而会顶的一种统一的体系结构,Java在集合框架中提供了一些线程的数据结构,加快程序的开发速度和程序的稳定性和可靠性;使用集合框架对集合里的数据进行统一的处理;集合框架可以根据框架里的元素数量动态的改变集合的容量,这样使得程序对存储空间的利用率更高,效率也更高; ...
分类:
编程语言 时间:
2018-06-06 01:05:49
阅读次数:
168
吾生也有涯,而知也无涯。———《庄子》通过上一篇文章,我们已经知道设计一个线程安全类的原则和步骤,以及在设计过程中我们应当注意的细节。实际上,Java 的集合库包含了线程安全集合和非线程安全集合,可以说 Java 的线程安全集合库就是按照前一篇说到的实例封闭、安全性的委托、组合这几个方式来实现的。这篇主要简单介绍 Java 集合库包含哪些常用的容器类,它们可以简单区分为:非同步集合同步集合并发集合
分类:
编程语言 时间:
2018-06-03 12:24:49
阅读次数:
243