随笔分类 -  Java集合源码剖析

摘要:Hashtable简介 Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。 Hashtable也是JDK1.0引入的类,是线程安全的,能用于多线程环境中。 Hashtable同样实现了Seri 阅读全文
posted @ 2018-04-10 16:56 kdy 阅读(186) 评论(0) 推荐(0)
摘要:HashMap简介 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。 HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMa 阅读全文
posted @ 2018-04-10 16:53 kdy 阅读(293) 评论(0) 推荐(0)
摘要:LinkedList简介 LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当做链表来操作外,它还可以当做栈、队列和双端队列来使用。 LinkedList同样是非线程安全的,只在单线程下适合使用。 LinkedList实现了Serializable接口,因此它支持序列化 阅读全文
posted @ 2018-04-10 16:47 kdy 阅读(189) 评论(0) 推荐(0)
摘要:ArrayList简介 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。 ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一 阅读全文
posted @ 2018-04-10 16:44 kdy 阅读(203) 评论(0) 推荐(0)
摘要:Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。学习Java集合框架下大致可以分为如下五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。 阅读全文
posted @ 2018-04-10 16:40 kdy 阅读(116) 评论(0) 推荐(0)