JAVA 集合三

Map接口:存储一组对象,每个对象都有一个关联的键。

提供对一个值的集合与一个键的规则集进行查询、更新和读取方法。

用于关键字/数值对,较高的存取性能。不允许重复的key,但允许重复的Value。
处理Map的三种集合:关键字集KeySet() 数值集value() 项目集enrySet()

Map接口提供3种集合的视图,Map的内容可以被当作一组key集合,一组value集合,或者一组key-value映射。


Hashtable:

Hashtable继承Map接口,实现一个key-value映射的哈希表。任何非空(non-null)的对象都可作为key或者value。
添加数据使用put(key,value),取出数据使用get(key),这两个基本操作的时间开销为常数。
Hashtable通过initialcapacity和loadfactor两个参数调整性能。通常缺省的loadfactor0.75较好地实现了时间和空间的均衡。增大loadfactor可以节省空间但相应的查找时间将增大,这会影响像get和put这样的操作。

HashMap

没有顺序、效率高。散列表的通用映射表,无序,可在初始化时设定其大小,自动增长。

HashMap和Hashtable类似,不同之处在于HashMap是非同步的,并且允许null,即nullvalue和nullkey。,但是将HashMap视为Collection时(values()方法可返回Collection),其迭代子操作时间开销和HashMap的容量成比例。因此,如果迭代操作的性能相当重要的话,不要将HashMap的初始化容量设得过高,或者loadfactor过低。

LinkedHashMap

可按插入图的顺序或者按最后一次访问时间的顺序排序。扩展HashMap,对返回集合迭代时,维护插入顺序。

TreeMap

基于平衡树的映射表。按照键排好的顺序遍历图。键可以使用Comparable接口或Comparator接口来排序。

WeakHashMap:

基于弱引用散列表的映射表,如果不保持映射表外的关键字的引用,则内存回收程序会回收它。

HashMap和Hashtable:

(1).历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
(2).同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
(3).值:只有HashMap可以让你将空值作为一个表的条目的key或value

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值