//方式一:在for-each循环中使用entries来遍历

System.out.println("方式一:在for-each循环中使用entries来遍历");

for(Map.Entry<String, String> entry: map.entrySet()) {

System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());

}
//方法二:在for-each循环中遍历keys或values,这种方式适用于需要值或者键的情况,方法二比方法一快了10%

System.out.println("方法二:在for-each循环中遍历keys或values,这种方式适用于需要值或者键的情况");

//遍历键

for(String key : map.keySet()) {

System.out.println("key = " + key);

}
//遍历值 for(String value : map.values()) { System.out.println("value = " + value); }
//方法三:使用Iterator遍历,使用并发集合不会报异常,性能类似于方法二

//使用泛型

Iterator<Map.Entry<String, String>> entries = map.entrySet().iterator();

System.out.println("使用Iterator遍历,并且使用泛型:");

while (entries.hasNext()) {

Map.Entry<String, String> entry = entries.next();

System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());

//注意这里操作了集合,下面的的遍历不会再打印0

if("0".equals(entry.getKey())) {

map.remove(entry.getKey());

}

}

//不使用泛型

Iterator entrys = map.entrySet().iterator();

System.out.println("使用Iterator遍历,并且不使用泛型");

while (entrys.hasNext()) {

Map.Entry entry = (Map.Entry) entrys.next();

String key = (String)entry.getKey();

String value = (String)entry.getValue();

System.out.println("Key = " + key + ", Value = " + value);

}
//方式四:通过键找值遍历,该方法效率相当低,不建议使用

System.out.println("方式四:通过键找值遍历");

for (String key : map.keySet()) {

String value = map.get(key);

System.out.println("Key = " + key + ", Value = " + value);

}

}

Java中遍历ConcurrentHashMap的四种方式的更多相关文章

  1. Java中遍历Map的四种方式

    Demo如下 Map<String, String> map = new HashMap<>(); map.put("key1","data1&q ...

  2. JAVA中集合输出的四种方式

    在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello { public stat ...

  3. Java中遍历map的四种方法 - 转载

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

  4. java中遍历集合的三种方式

    第一种遍历集合的方式:将集合变为数组 package com.lw.List; import java.util.ArrayList; import java.util.List; import ja ...

  5. Java中实现多线程的四种方式

    Java多线程实现方式主要有四种:继承Thread类.实现Runnable接口.实现Callable接口通过FutureTask包装器来创建Thread线程.使用ExecutorService.Cal ...

  6. Java中遍历数组的三种方式复习

    1 for循环遍历 通常遍历数组都是使用for循环来实现.遍历一维数组很简单,遍历二维数组需要使用双层for循环,通过数组的length属性可获得数组的长度. 程序示例: package captai ...

  7. java中遍历map的两种方式

    1.先将map对象转成set,然后再转为迭代器 Iterator iterator = map.entrySet().iterator(); while(iterator.hasNext()){ En ...

  8. java 遍历Map的四种方式

      java 遍历Map的四种方式 CreationTime--2018年7月16日16点15分 Author:Marydon 一.迭代key&value 第一种方式:迭代entrySet 1 ...

  9. java读取XML文件的四种方式

    java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...

随机推荐

  1. Vue开发之项目创建

    1.编辑器配置 习惯使用VScode进行开发时,可以安装EditorConfig for Visual Studio Code插件,然后在项目中新建.editorconfig文件,来配置编辑器的使用习 ...

  2. ArcGIS for Server 10.2 开启GeometryService

    过程非常简单,所以网上文档比较少. 打开网站管理页面: http://localhost:6080/arcgis/manager/ 点左边Utilities

  3. 20180530模拟赛T2——绀碧之棺

    题目背景 qiancl 得到了一张藏宝图,上面写了一道谜题. 题目描述 定义\(F(n)\)为 n 在十进制下各个数位的平方和,求区间\([a,b]\)中有多少\(n\)满足\(k\times F(n ...

  4. Redis 入门知识点

    1.Redis简介 1.1.简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redi ...

  5. 证明StringBuffer线程安全,StringBuilder线程不安全

    证明StringBuffer线程安全,StringBuilder线程不安全证明StringBuffer线程安全StringBuilder线程不安全测试思想测试代码结果源码分析测试思想分别用1000个线 ...

  6. react native redux 草稿

    Provider > Provider > 使组件层级中的 方法都能够获得 Redux store.正常情况下,你的根组件应该嵌套在 Provider 中才能使用 方法. 如果你真的不想把 ...

  7. What is react-native link?

    What is react-native link? or Should you just use react-native link when linking any dependency or s ...

  8. Trie Service

    Description Build tries from a list of <word, freq> pairs. Save top 10 for each node. Example ...

  9. Response Assertion(响应断言)

    Response Assertion(响应断言) 响应断言是对服务器的响应数据进行规则匹配. Name(名称):可以随意设置,最好有业务意义. Comments(注释):可以随意设置,可以为空. Ap ...

  10. 修改 oracle xe 默认中文字符集成为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

    修改 oracle xe 默认中文字符集成为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK Oracle XE 执行安装程序后,很简单的默认为  SIMPLIFIED CHINE ...