集合类
文章平均质量分 94
「已注销」
这个作者很懒,什么都没留下…
展开
-
深入解析HashMap、HashTable、ConcurrentHashMap
Java集合类是个非常重要的知识点,HashMap、HashTable、ConcurrentHashMap等算是集合类中的重点,可谓“重中之重”,首先来看个问题,如面试官问你:HashMap和HashTable有什么区别,一个比较简单的回答是:1、HashMap是非线程安全的,HashTable是线程安全的。2、HashMap的键和值都允许有null值存在,而HashTable则不原创 2016-08-19 09:39:28 · 859 阅读 · 1 评论 -
HashMap的实现原理
1. HashMap概述:HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。2. HashMap的数据结构:在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMa转载 2016-07-24 21:11:49 · 297 阅读 · 0 评论 -
Java源码:ArrayList的实现原理
1. ArrayList概述: ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向ArrayList中不断添加元素,其容量原创 2016-07-28 22:22:11 · 463 阅读 · 0 评论 -
java源码:hashSet
1. HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 2. HashSet的实现: 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet原创 2016-07-28 22:40:49 · 290 阅读 · 0 评论 -
java源码:LinkedHashMap
1. LinkedHashMap概述: LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 LinkedHashMap实现与HashMap的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代转载 2016-08-05 22:58:02 · 276 阅读 · 0 评论 -
java源码:HashMap实现原理
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本转载 2016-08-05 22:49:55 · 441 阅读 · 0 评论 -
Java并发编程:并发容器之CopyOnWriteArrayList
Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。原创 2016-08-16 18:59:35 · 350 阅读 · 0 评论 -
Java并发编程:并发容器之ConcurrentHashMap
JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的访问都串行化了,这样保证了线程的安全性,所以这种方法的代价就是严重降低了并发性,当多个线程竞争容器时,吞吐量严重降低。因此Java5.0开始针对多线程并发访问设计,提供了并发性能较好的并发容器,引入了java.util.concurrent包。与Vecto原创 2016-08-16 19:04:37 · 545 阅读 · 0 评论 -
Java并发编程:同步容器
为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列、Synchronizer(比如CountDownLatch)。今天我们就来讨论下同步容器。 以下是本文的目录大纲: 一.为什么会出现同步容器? 二.Java中的同步容器类 三.同步容器的缺陷 若有不正之处请多多谅解,并欢迎批评指正。原创 2016-08-17 10:00:04 · 361 阅读 · 0 评论 -
Java基础--集合类
最近在找工作,目前还没有定下来,拿到了一个公司的offer,不过被当白菜了,正在商量薪资方面的事情。随着百度面试的失败,梦想再次破灭。想想这一年来的奋斗,别是一番滋味在心头。突然想起一句话:踏歌长行,梦想永在!说程序员是幸福的,因为我们每天都会和大脑过意不去,故意去挑战,因为我们总是在与IDE经历了一系列的战斗后,露出欣喜的表情,也因为我们总是以自己从事复杂的、高智商的工作而骄傲、自豪!原创 2016-08-18 16:52:15 · 991 阅读 · 0 评论 -
java集合--Vector
在java提高篇(二一)—–ArrayList、java提高篇(二二)—LinkedList,详细讲解了ArrayList、linkedList的原理和实现过程,对于List接口这里还介绍一个它的实现类Vector,Vector 类可以实现可增长的对象数组。一、Vector简介 Vector可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件转载 2016-08-18 19:11:47 · 269 阅读 · 0 评论 -
java集合--Stack
Stack是一个后进先出(last in first out,LIFO)的堆栈,在Vector类的基础上扩展5个方法而来Deque(双端队列)比起Stack具有更好的完整性和一致性,应该被优先使用[plain] view plain copyE push(E item) 把项压入堆栈顶部。 E pop原创 2016-08-18 19:14:54 · 264 阅读 · 0 评论 -
Java集合框架总结
整体了解Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。学习Java集合框架下大致可以分为如下五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。 Java集合类的整体框架如下: 从上图中可转载 2016-09-02 20:59:07 · 332 阅读 · 0 评论