java 常用map_java中常用的map有几种

java中常用的map有几种

发布时间:2020-06-26 15:04:29

来源:亿速云

阅读:184

作者:Leah

今天就跟大家聊聊有关java中常用的map,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

java为数据结构中的映射定义了一个接口java.util.Map,他实现了四个类,分别是:HashMap,HashTable,LinkedHashMapTreeMap,Map不允许键重复,但允许值重复

1.HashMap:

最常用的Map,根据键的hashcode值来存储数据,根据键可以直接获得他的值(因为相同的键hashcode值相同,在地址为hashcode值的地方存储的就是值,所以根据键可以直接获得值),具有很快的访问速度,遍历时,取得数据的顺序完全是随机的,HashMap最多只允许一条记录的键为null,允许多条记录的值为null,HashMap不支持线程同步,即任意时刻可以有多个线程同时写HashMap,这样对导致数据不一致,如果需要同步,可以使用synchronziedMap的方法使得HashMap具有同步的能力或者使用concurrentHashMap

2.HashTable:

与HashMap类似,不同的是,它不允许记录的键或值为空,支持线程同步,即任意时刻只能有一个线程写HashTable,因此也导致HashTable在写入时比较慢!

3.LinkedHashMap:

是HahsMap的一个子类,但它保持了记录的插入顺序,遍历时先得到的肯定是先插入的,也可以在构造时带参数,按照应用次数排序,在遍历时会比HahsMap慢,不过有个例外,当HashMap的容量很大,实际数据少时,遍历起来会比LinkedHashMap慢(因为它是链啊),因为HashMap的遍历速度和它容量有关,LinkedHashMap遍历速度只与数据多少有关

4.TreeMap:

实现了sortMap接口,能够把保存的记录按照键排序(默认升序),也可以指定排序比较器,遍历时得到的数据是排过序的

什么情况用什么类型的Map:

在Map中插入,删除,定位元素:HashMap

要按照自定义顺序或自然顺序遍历:TreeMap

要求输入顺序和输出顺序相同:LinkedHashMap

看完上述内容,你们对java中常用的map有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java ,遍历 Map常用方式有以下几种: 1. 使用 for-each 循环遍历 EntrySet:使用 for-each 循环遍历 Map 的 entrySet() 方法,获取到 Map 的每一个键值对,示例代码如下: ```java for (Map.Entry<String, Integer> entry : map.entrySet()) { String key = entry.getKey(); Integer value = entry.getValue(); System.out.println(key + " : " + value); } ``` 2. 使用 for-each 循环遍历 KeySet:使用 for-each 循环遍历 Map 的 keySet() 方法,获取到 Map 的每一个键,示例代码如下: ```java for (String key : map.keySet()) { Integer value = map.get(key); System.out.println(key + " : " + value); } ``` 3. 使用迭代器遍历 EntrySet:使用迭代器遍历 Map 的 entrySet() 方法,获取到 Map 的每一个键值对,示例代码如下: ```java Iterator<Map.Entry<String, Integer>> it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry<String, Integer> entry = it.next(); String key = entry.getKey(); Integer value = entry.getValue(); System.out.println(key + " : " + value); } ``` 4. 使用 Stream API 遍历 EntrySet:使用 Stream API 遍历 Map 的 entrySet() 方法,获取到 Map 的每一个键值对,示例代码如下: ```java map.entrySet().stream().forEach(entry -> { String key = entry.getKey(); Integer value = entry.getValue(); System.out.println(key + " : " + value); }); ``` 以上就是 Java 常用几种遍历 Map 的方式,具体使用哪种方式取决于你的需求和个人喜好。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值