Java基础之Map集合

Java基础之Map集合,第1张

Java基础之Map集合 Map:主要用于键值对,根据健得到值,因此不允许健重复(重复的话,那就覆盖)

HashMap:他是一个最常用的Map,他根据健的HashCode值存储数据,根据健可以直接获取他的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的。HashMap最多只允许一条记录的健为NULL;允许多条记录的值为NULL;HashMap不支持多线程同步,即任意时刻可以有多个线程同时写HashMap;可能会导致数据的不一致。如果需要同步的话,可以用Collections的synchronizedMap方法使HashMap具有同步的能力,或者使用ConcurrentHashMap。

精华:
1.HashMap 具有很快的访问速度,
2.最多只允许一个健为NUll;值为不为NULL无所谓
3.HashMap不支持多线程的同步,如果想要使用多线程,可以使用synchronizedMap方法让他具有同步能力

Hahstable:它与HashMap类似,他继承自Dictionary类,她不允许记录的健或者值为NULL,它支持线程的同步,即任意时刻只有一个线程能写HashTable,因此也导致了Hashtable在写入的时候会比较慢

她不允许记录的健或者值为NULL
它支持线程的同步

linkedHashMap:它是HashMap的一个子类,保存了记录的插入顺序,在用iterator便利linkedHashMap的时候,先得到的记录肯定是先插入的,也可以在构造时用带参数,按照应用次数排序,在便利的时候会比HashMap慢,不过有种情况例外,当HashMap容量较大,实际较少的时候,遍历起来可能会比linkedHashMap慢,因此linkedHashMap的便利速度只和实际数据有关,和容量无关,而HashMap的便利速度和他的容器有关

精华:
linkedHashMap保存了记录的插入顺序,在用iterator便利linkedHashMap的时候,先得到的记录肯定是先插入的,在便利的时候可能会比HashMap慢

-Treemap:它实现了SortMap接口,能够把它保存的记录根据健排序,默认是按照健的生序排序,也可以指定排序的比较器,当用iterator便利TreeMap的时候,得到的记录是排过序的。

精华:
TreeMap能够把它保存的记录根据健进行排序

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5717616.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存