Java集合
swallowflytop
一位码农,一位全栈工程师
展开
-
搞懂JAVA集合类--线程安全问题(六)
基本的Java集合类中, 线程安全的有Venctor和Hashtable,其余的ArrayList,LinkedList,HashMap,HashSet,TreeSet,LinkedHashSet,HashMap,TreeMap都不线程安全。可以由java.util.Collections来创建线程安全的集合,如:Connections.synchronizedSet(Set); Connectio转载 2016-11-01 20:54:41 · 321 阅读 · 0 评论 -
搞懂JAVA集合类--HashSet, LinkedHashSet, TreeSet(五)
HashSet, LinkedHashSet, TreeSet分别使用HashMap,LinkedHashMap和TreeSetMap作为底层实现HashSet 的实现其实非常简单,它只是封装了一个 HashMap 对象来存储所有的集合元素,所有放入 HashSet 中的集合元素实际上由 HashMap 的 key 来保存,而 HashMap 的 value 则存储了一个 PRESENT,它是一个静转载 2016-10-31 19:14:31 · 240 阅读 · 0 评论 -
搞懂JAVA集合类--HashTable, LinkedHashMap, TreeMap(四)
HashTable, LinkedHashMap, TreeMap相比HashMap不那么常用。HashTable和HashMap大体差不多,有几点区别: 1. 我们从他们的定义就可以看出他们的不同,HashTable基于Dictionary类,而HashMap是基于AbstractMap。 2. HashMap可以允许存在一个为null的key和任意个为null的value,但是HashTab转载 2016-10-31 18:18:38 · 173 阅读 · 0 评论 -
搞懂JAVA集合类--HashMap(三)
HashMap底层是哈希表实现(格式像数组链表的组合):HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。由于存储位置由hashCode确定,所以此类不保证映射的顺序,因为新插入值特别是它不保证该顺序恒久不变。HashMap 的实例有两个参数影响其性能:初始容量( 默认值为 16) 和加载因子(默认0.75)。当哈希表中的条目数超转载 2016-10-31 17:23:33 · 196 阅读 · 0 评论 -
搞懂JAVA集合类--List的实现 ArrayList、Vector、LinkedList(二)
ArrayList还是Vector,在它们内部都是使用一个数组来保存数据的。开发过程中,在使用它们任何一个的时候,你都需要记住这一点。你在往一个ArrayList或者Vector里插入一个元素的时候,如果内部数组空间不够了,ArrayList或者Vector就要扩展它的大小。Vector在默认情况下是增长一倍的大小,而ArrayList增加50%的大小。只要你合理的使用这些类,你就可以结束你在增加新转载 2016-10-31 16:23:25 · 223 阅读 · 0 评论 -
搞懂JAVA集合类--集合类框架(一)
上述类图中,实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如AbstractCollection,AbstractList,AbstractMap等,而点线边框的是接口,比如Collection,Iterator,List等。发现一个特点,上述所有的集合类,都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含hashNe转载 2016-10-31 15:33:39 · 188 阅读 · 0 评论 -
JAVA 集合性能特性汇总
JAVA集合平时使用较多的是ArrayList和HashMap,其实还有很多不常用的,总结下其特点和性能,以备使用 1. Set有2种典型实现,HashSet 和 TreeSet, TreeSet就是排序的的Set,由于TreeSet内部需要红黑算法树来维持其排序,添加和查询方面HashSet都优于TreeSet,通常除非需要一个排序的Set情况外,都使用HashSet。HashSet还转载 2016-07-03 20:29:49 · 676 阅读 · 0 评论