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能够把它保存的记录根据健进行排序
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)