码迷,mamicode.com
首页 > 编程语言 > 详细

java的集合对比----Map

时间:2015-07-13 11:54:24      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

java集合另一个大接口就是Map,与Collection最大的不同就是,Collection存储的是一个对象,而Map存储的是一对对象,即key—Value的形式存储,key是不能重复的。能把Map实例化的类有4个: HashMap,Hashtable,WeakHashMap,TreeMap。

Map的遍历,是先通过entrySet()获取他set集合,同理,keySet()获取他的key的set集合,values()获取他的value的set集合,再通过set集合取Iterator进行遍历。

HashMap

他有Map的所有特性,key 和 value 都是可以为null的。不是线程安全的,如果key重复了,那么后一个key的value会覆盖前一个key的value,反正保存的集合中,key是不会有重复的。他有个初始容量(16) 和加载因子(默认为0.75),他有一个阈值(初始容量 * 加载因子),如果size超过这个阈值,那么容量就 x 2。

Hashtable

感觉他和HashMap差不多,Hashtable 的初始容量是11,每次size增加 x2 +1个。key和value都不能为null, 他的线程安全的。他的遍历顺序和HashMap是反的,HashMap是从前向后,而Hashtable是从后向前。他多了一种遍历方式,Enumeration。

TreeMap

感觉他就是一个key有顺序的key-value集合,他的key不能是null,value可以。他也不是线程安全的。

WeakHashMap

 

他和HashMap差不多,但是他的键是弱键,会被GC回收。

最后,若想把线程不安全的集合变成安全的,用 Collections.synchronizedMap,Collections.synchronizedSet,Collections.synchronizedList函数是一种解决办法。

java的集合对比----Map

标签:

原文地址:http://www.cnblogs.com/lzq1065763582/p/4642235.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!