您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

java中HashMap和LinkedHashMap的区别

2024/3/30 18:16:40发布11次查看
hashmap
hashmap是最常用的map,根据键的hashcode值存储数据,可以根据键直接获取它的值,具有很快的访问速度,遍历时候的顺序是完全随机的。hashmap只允许一个键为null,允许多个值为null。
特性: 完全随机
优点: 随机访问,取值速度快
缺点: 多个线程同时写hashmap可能导致数据不一致,如果需要同步,使用collection的synchronizedmap方法或者使用concurrenthashmap
linkedhashmap
linkedhashmap是hashmap的一个子类,保存了记录的插入顺序,与hashmap的随机遍历不同,在用iterator遍历的时候,先得到的记录肯定是先插入的,类似于python中的ordereddict。
遍历速度会比hashmap慢,不过有一种情况例外: 当hashmap的容量很大,实际数据很少时 , 因为hashmap的遍历速度和它的容量有关,而linkedhashmap只跟实际数据量有关。
treemap
treemap实现sortmap接口,能够将它保存的记录按键排序,默认是按键的升序排列,也可以指定排序的比较器,遍历treemap的时候,得到的记录是按照键排过序的。
根据数据选择map
一般情况下,我们用的最多的是hashmap,在map中插入、删除和定位元素,hashmap 是最好的选择。但如果您要按自然顺序或自定义顺序遍历键,那么treemap会更好。如果需要输出的顺序和输入的相同,那么用linkedhashmap可以实现,它还可以按读取顺序来排列。
推荐教程:java教程
以上就是java中hashmap和linkedhashmap的区别的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product