-
2022-04-03 21:00:05
方法一:在for循环中遍历value
Map<String, String> map = new HashMap(); map.put("开发", "开发"); map.put("测试", "测试"); for (Object value : map.values()) { System.out.println("第一种:" + value); }
方法二::通过key遍历
for (String key: map.keySet()) { System.out.println("第二种:" + map.get(key)); }
方法三::通过entrySet实现遍历
Set<Map.Entry<String, String>> entrySet = map.entrySet(); for (Map.Entry entry : entrySet) { System.out.println("第三种:" + entry.getKey() + " :" + entry.getValue()); }
方法四::通过Iterator迭代器实现遍历
Iterator<Map.Entry<String, String>> entryIterator = map.entrySet().iterator(); while (entryIterator.hasNext()) { Map.Entry<String, String> entry = entryIterator.next(); System.out.println("第四种:" + entry.getKey() + " :" + entry.getValue()); }
方法五 :通过lambda表达式进行遍历
map.forEach((key, value) -> { System.out.println("第五种:" + key + " :" + value); });
更多相关内容 -
java中遍历某个目录下的所有文件及文件夹中的文件
2013-12-15 12:42:40本代码简单实现,遍历某个目录下的所有文件,并列出文件路径 -
Java中 遍历 ArrayList的三种方法
2022-05-11 21:35:26import java.util.*; public class test { public static void main(String[] args) { List<String> list=new ArrayList<String>();... list.add("Hello");... //第一种遍历方法使用 For-Ea.import java.util.*; public class test { public static void main(String[] args) { List<String> list=new ArrayList<String>(); list.add("Hello"); list.add("World"); list.add("Java"); //第一种遍历方法使用 For-Each 遍历 List for (String str : list) { //也可以改写 for(int i=0;i<list.size();i++) 这种形式 System.out.println(str); } System.out.println("--------------------------"); //第二种遍历,把链表变为数组相关的内容进行遍历 String[] strArray=new String[list.size()]; list.toArray(strArray); for(int i=0;i<strArray.length;i++) //这里也可以改写为 for(String str:strArray) 这种形式 { System.out.println(strArray[i]); } System.out.println("--------------------------"); //第三种遍历 使用迭代器进行相关遍历 Iterator<String> ite=list.iterator(); while(ite.hasNext())//判断下一个元素之后有值 { System.out.println(ite.next()); } } }
注:三种方法都是用来遍历ArrayList集合,第三种方法是采用迭代器的方法,该方法可以不用担心在遍历的过程中会超出集合的长度。
Iterator:迭代器,集合的专用遍历方式
- Iterator<E>iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
- 迭代器是通过集合的iterator()方法得到的,所以说它是依赖于集合而存在的
Iterator中的常用方法
- E next():返回迭代中的下一个元素
- Boolean hasNext():如果迭代具有更多元素,则返回true
-
Java中遍历ConcurrentHashMap的四种方式详解
2020-08-25 11:16:34主要介绍了Java中遍历ConcurrentHashMap的四种方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 -
Java中遍历Map集合的五种方式
2021-01-28 23:26:04包含for循环遍历、entrySet使用iterator遍历,并且介绍了Java8新特性使用lambda表达式forEach遍历。写在前面: 我是「扬帆向海」,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。
技术是开源的、知识是共享的。
这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。
用知识改变命运,让我们的家人过上更好的生活
。文章目录
方式一 通过Map.keySet使用iterator遍历
@Test public void testHashMap1() { Map<Integer, String> map = new HashMap<>(); map.put(001, "Java"); map.put(002, "数据库"); map.put(003, "Vue"); System.out.println(map); // 通过Map.keySet使用iterator遍历key,然后通过key得到对应的value值 Iterator<Integer> iterator = map.keySet().iterator(); while (iterator.hasNext()) { Integer key = iterator.next(); String value = map.get(key); System.out.println("key = " + key + ", value = " + value); } }
结果:
{1=Java, 2=数据库, 3=Vue} key = 1, value = Java key = 2, value = 数据库 key = 3, value = Vue
方式二 通过Map.entrySet使用iterator遍历
@Test public void testHashMap2() { Map<Integer, String> map = new HashMap<>(); map.put(001, "Java"); map.put(002, "数据库"); map.put(003, "Vue"); System.out.println(map); // 通过Map.entrySet使用iterator遍历key和value;注意 Set entrySet():返回所有key-value对构成的Set集合 Iterator<Map.Entry<Integer, String>> entries = map.entrySet().iterator(); while (entries.hasNext()) { Map.Entry<Integer, String> entry = entries.next(); System.out.println(entry); } }
结果:
{1=Java, 2=数据库, 3=Vue} 1=Java 2=数据库 3=Vue
方式三 通过Map.keySet遍历
@Test public void testHashMap3() { Map<Integer, String> map = new HashMap<>(); map.put(001, "Java"); map.put(002, "数据库"); map.put(003, "Vue"); System.out.println(map); // 通过Map.keySet遍历key,然后通过key得到对应的value值 for (Integer key : map.keySet()) { System.out.println("key = " + key + ", value = " + map.get(key)); } }
结果:
{1=Java, 2=数据库, 3=Vue} key = 1, value = Java key = 2, value = 数据库 key = 3, value = Vue
方式四 通过For-Each迭代entries,使用Map.entrySet遍历
@Test public void testHashMap4() { Map<Integer, String> map = new HashMap<>(); map.put(001, "Java"); map.put(002, "数据库"); map.put(003, "Vue"); System.out.println(map); // 使用For-Each迭代entries,通过Map.entrySet遍历key和value for (Map.Entry<Integer, String> entry : map.entrySet()) { System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue()); } }
{1=Java, 2=数据库, 3=Vue} key = 1, value = Java key = 2, value = 数据库 key = 3, value = Vue
方式五 使用lambda表达式forEach遍历
@Test public void testHashMap5() { Map<Integer, String> map = new HashMap<>(); map.put(001, "Java"); map.put(002, "数据库"); map.put(003, "Vue"); System.out.println(map); // 使用lambda表达式forEach遍历 map.forEach((k, v) -> System.out.println("key = " + k + ", value = " + v)); }
forEach 源码
default void forEach(BiConsumer<? super K, ? super V> action) { Objects.requireNonNull(action); for (Map.Entry<K, V> entry : entrySet()) { K k; V v; try { k = entry.getKey(); v = entry.getValue(); } catch(IllegalStateException ise) { // this usually means the entry is no longer in the map. throw new ConcurrentModificationException(ise); } action.accept(k, v); } }
从源码可以看到,这种新特性就是在传统的迭代方式上加了一层壳,但是让代码变得更加简单。(
开发中推荐使用
)总结
推荐使用 entrySet 遍历 Map 类集合 KV
(文章中的第四种方式),而不是 keySet 方式进行遍历。keySet 其实是遍历了 2 次,第一次是转为 Iterator 对象,第二次是从 hashMap 中取出 key 所对应的 value值。而 entrySet 只是遍历了一次,就把 key 和 value 都放到了 entry 中,效率更高。
values()返回的是 V 值集合,是一个 list 集合对象;keySet()返回的是 K 值集合,是一个 Set 集合对象;entrySet()返回的是 K-V 值组合集合。
如果是 JDK8,推荐使用Map.forEach 方法
(文章中的第五种方式)。
由于水平有限,本博客难免有不足,恳请各位大佬不吝赐教!
-
Java中遍历Map集合的5种方式总结
2021-06-03 16:03:13这篇文章主要给大家介绍了关于Java中遍历Map集合的5种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 方式一 通过Map.keySet使用...这篇文章主要给大家介绍了关于Java中遍历Map集合的5种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
方式一 通过Map.keySet使用iterator遍历
@Test public void testHashMap1() { Map<Integer, String> map = new HashMap<>(); map.put(001, "Java"); map.put(002, "数据库"); map.put(003, "Vue"); System.out.println(map); // 通过Map.keySet使用iterator遍历key,然后通过key得到对应的value值 Iterator<Integer> iterator = map.keySet().iterator(); while (iterator.hasNext()) { Integer key = iterator.next(); String value = map.get(key); System.out.println("key = " + key + ", value = " + value); } }
结果:
{1=Java, 2=数据库, 3=Vue} key = 1, value = Java key = 2, value = 数据库 key = 3, value = Vue
方式二 通过Map.entrySet使用iterator遍历
@Test public void testHashMap2() { Map<Integer, String> map = new HashMap<>(); map.put(001, "Java"); map.put(002, "数据库"); map.put(003, "Vue"); System.out.println(map); // 通过Map.entrySet使用iterator遍历key和value;注意 Set entrySet():返回所有key-value对构成的Set集合 Iterator<Map.Entry<Integer, String>> entries = map.entrySet().iterator(); while (entries.hasNext()) { Map.Entry<Integer, String> entry = entries.next(); System.out.println(entry); } }
结果:
{1=Java, 2=数据库, 3=Vue} 1=Java 2=数据库 3=Vue
方式三 通过Map.keySet遍历
@Test public void testHashMap3() { Map<Integer, String> map = new HashMap<>(); map.put(001, "Java"); map.put(002, "数据库"); map.put(003, "Vue"); System.out.println(map); // 通过Map.keySet遍历key,然后通过key得到对应的value值 for (Integer key : map.keySet()) { System.out.println("key = " + key + ", value = " + map.get(key)); } }
结果:
{1=Java, 2=数据库, 3=Vue} key = 1, value = Java key = 2, value = 数据库 key `= 3, value = Vue
方式四 通过For-Each迭代entries,使用Map.entrySet遍历
@Test public void testHashMap4() { Map<Integer, String> map = new HashMap<>(); map.put(001, "Java"); map.put(002, "数据库"); map.put(003, "Vue"); System.out.println(map); // 使用For-Each迭代entries,通过Map.entrySet遍历key和value for (Map.Entry<Integer, String> entry : map.entrySet()) { System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue()); } }
{1=Java, 2=数据库, 3=Vue} key = 1, value = Java key = 2, value = 数据库 key = 3, value = Vue
方式五 使用lambda表达式forEach遍历
@Test public void testHashMap5() { Map<Integer, String> map = new HashMap<>(); map.put(001, "Java"); map.put(002, "数据库"); map.put(003, "Vue"); System.out.println(map); // 使用lambda表达式forEach遍历 map.forEach((k, v) -> System.out.println("key = " + k + ", value = " + v)); }
forEach 源码
default void forEach(BiConsumer<? super K, ? super V> action) { Objects.requireNonNull(action); for (Map.Entry<K, V> entry : entrySet()) { K k; V v; try { k = entry.getKey(); v = entry.getValue(); } catch(IllegalStateException ise) { // this usually means the entry is no longer in the map. throw new ConcurrentModificationException(ise); } action.accept(k, v); } }
从源码可以看到,这种新特性就是在传统的迭代方式上加了一层壳,但是让代码变得更加简单。(开发中推荐使用)
总结
推荐使用 entrySet 遍历 Map 类集合 KV (文章中的第四种方式),而不是 keySet 方式进行遍历。
keySet 其实是遍历了 2 次,第一次是转为 Iterator 对象,第二次是从 hashMap 中取出 key 所对应的 value值。而 entrySet 只是遍历了一次,就把 key 和 value 都放到了 entry 中,效率更高。
values()返回的是 V 值集合,是一个 list 集合对象;keySet()返回的是 K 值集合,是一个 Set 集合对象;entrySet()返回的是 K-V 值组合集合。
-
java反射遍历实体类属性和类型,并赋值和获取值的简单方法
2020-08-30 20:27:38下面小编就为大家带来一篇java反射遍历实体类属性和类型,并赋值和获取值的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
Java中遍历Map的多种方法示例及优缺点总结
2020-08-30 01:20:20在java中遍历Map有不少的方法,下面这篇文章主要给大家介绍了关于Java中遍历Map的多种方法,以及各种方法的优缺点总结,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看... -
Java中遍历Map集合的3种方式
2021-03-06 10:30:03Java中遍历Map集合有以下3种方式 方法一:通过**keySet()**方法遍历map的key,再根据key获得value,最常用的方式。 for (String s : map.keySet()) { String value = map.get(s); System.out.println("key为:" + ... -
java 中遍历取值异常(Hashtable Enumerator)解决办法
2020-08-29 17:26:16主要介绍了java 中遍历取值异常(Hashtable Enumerator)解决办法的相关资料,用迭代器取值时抛出的异常:java.util.NoSuchElementException: Hashtable Enumerator ,需要的朋友可以参考下 -
JAVA中遍历字符串中字符的三种方法
2020-04-21 20:05:441).toCharArray() 2).length(), charAt() 3).length(), substring(i ,i+1) public static void main(String[] args) { String str = "keep walking!!!"; //方法一 char[] charArray = str.toCh... -
java中遍历set集合,java中set怎么遍历?
2021-02-12 17:13:45之前给大家介绍了一下java对set对象进行去重的方法,那么下面接着给大家介绍的就是java中遍历set集合方法的内容,一起来了解一下具体方法吧!java中遍历set的三种方式:对set的遍历1.迭代遍历:Setset=newHashSet();... -
java中List集合及其遍历详解
2020-09-03 13:44:14主要介绍了java中List集合及其遍历详解的相关资料,需要的朋友可以参考下 -
浅析java中遍历map的两种方式
2020-09-01 00:56:39本篇文章主要分享了java中遍历map的两种方式,代码简洁明了,有需要的朋友可以参考下,希望会有所帮助 -
java JSONArray 遍历方式(2种)
2020-10-15 22:07:06主要介绍了java JSONArray 遍历方式(2种),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
java中遍历map的几种方法
2021-02-26 18:26:55java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点先初始化一个mappublic class TestMap {public static Map map = new HashMap()... -
java arrayList遍历的四种方法及Java中ArrayList类的用法
2020-09-03 04:19:07arraylist是动态数组,它具有三个好处分别是:动态的增加和减少元素 、实现了ICollection和IList接口、灵活的设置数组的大小,本文给大家介绍java arraylist遍历及Java arraylist 用法,感兴趣的朋友一起学习吧 -
Java中遍历Map的各种方式
2021-03-15 03:28:16在遍历Map集合之前首先先定义一个Map对象:Map map = new LinkedHashMap();map.put("1", "one");map.put("2", "two");map.put("3", "three");map.put("4", "fore");map.put("5", "five");这个地方使用的是... -
在java中 遍历mysql中的树形结构
2013-06-18 14:08:53在java中 遍历mysql中的树形结构 -
Java递归遍历树形结构
2020-09-02 16:42:25主要介绍了Java递归遍历树形结构的相关资料,需要的朋友可以参考下 -
如何在 Java 中遍历枚举类型
2021-03-17 21:53:20可以调用枚举 class 的 values() 方法返回数组,然后遍历这个数组:for (EnumClass ...}在 Java 8 之后的版本可以将枚举类型转换为流来进行遍历:Stream.of(EnumClass.values()).forEach(System.out::println);使用 ... -
java中遍历HashMap的四种方法及效率比较
2020-12-20 17:46:341. 推荐方法: 使用entrySet 遍历Map 类集合KV,而不是keySet 方式进行遍历。... } 输出结果(1000万条数据): 参考: HASHMAP的四种遍历方法,及效率比较(简单明了) Java中遍历ConcurrentHashMap的四种方式 -
java中遍历字符串的三种方法
2018-12-31 19:45:541).length(), charAt() 2).length(), substring(i ,i+1) 3).toCharArray() String str="2019 come on"; // 方法一 for(int i=0;i < str.length();i++) { System.out.println(str...for(i... -
Java中遍历文件夹的2种方法
2021-02-12 12:49:37java遍历文件夹的两种办法:A. 不使用递归import java.io.File;import java.util.LinkedList;public class FileSystem {public static void main(String[] args) {long a = System.currentTimeMillis();LinkedList ... -
JAVA中遍历字符串的两种方法
2022-01-10 17:43:39JAVA中遍历字符串的两种方法 -
java集合遍历的几种方式总结及详细比较
2020-08-30 17:25:45下面小编就为大家带来一篇java集合遍历的几种方式总结及详细比较。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
java中遍历实体类属性字段及值
2019-11-19 10:16:32https://blog.csdn.net/dongzhouzhou/article/details/8659836 https://blog.csdn.net/bwgang/article/details/8475076 -
在Java中遍历HashSet
2021-03-06 15:06:28HashSet扩展AbstractSet并实现Set接口。它创建一个使用哈希表进行存储的...要遍历HashSet,可以在Java中使用Iterator。首先,创建一个具有字符串值的HashSet-HashSethashSet=newHashSet();hashSet.add("Jack");ha... -
java中ResultSet遍历数据操作
2020-08-18 14:40:57主要介绍了java中ResultSet遍历数据操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧