Java中遍历HashMap的5种方式

待兔 等级 771 0 0

本教程将为你展示Java中HashMap的几种典型遍历方式。

如果你使用Java8,由于该版本JDK支持lambda表达式,可以采用第5种方式来遍历。

如果你想使用泛型,可以参考方法3。如果你使用旧版JDK不支持泛型可以参考方法4。

1、 通过ForEach循环进行遍历

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class Test {
    public static void main(String[] args) throws IOException {
        Map<Integer, Integer> map = new HashMap<Integer, Integer>();
        map.put(1, 10);
        map.put(2, 20);

        // Iterating entries using a For Each loop
        for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
            System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
        }

    }
}

2、 ForEach迭代键值对方式

如果你只想使用键或者值,推荐使用如下方式

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class Test {
    public static void main(String[] args) throws IOException {
        Map<Integer, Integer> map = new HashMap<Integer, Integer>();
        map.put(1, 10);
        map.put(2, 20);

        // 迭代键
        for (Integer key : map.keySet()) {
            System.out.println("Key = " + key);
        }

        // 迭代值
        for (Integer value : map.values()) {
            System.out.println("Value = " + value);
        }
    }
}

3、使用带泛型的迭代器进行遍历

import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Test {
    public static void main(String[] args) throws IOException {
        Map<Integer, Integer> map = new HashMap<Integer, Integer>();
        map.put(1, 10);
        map.put(2, 20);

        Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();
        while (entries.hasNext()) {
            Map.Entry<Integer, Integer> entry = entries.next();
            System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
        }
    }
}

4、使用不带泛型的迭代器进行遍历

import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Test {

    public static void main(String[] args) throws IOException {

        Map map = new HashMap();
        map.put(1, 10);
        map.put(2, 20);

        Iterator<Map.Entry> entries = map.entrySet().iterator();
        while (entries.hasNext()) {
            Map.Entry entry = (Map.Entry) entries.next();
            Integer key = (Integer) entry.getKey();
            Integer value = (Integer) entry.getValue();
            System.out.println("Key = " + key + ", Value = " + value);
        }
    }
}

5、通过Java8 Lambda表达式遍历

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class Test {

    public static void main(String[] args) throws IOException {

        Map<Integer, Integer> map = new HashMap<Integer, Integer>();
        map.put(1, 10);
        map.put(2, 20);
        map.forEach((k, v) -> System.out.println("key: " + k + " value:" + v));
    }
}

输出

key: 1 value:10
key: 2 value:20
收藏
评论区

相关推荐

3 手写Java HashMap核心源码
手写Java HashMap核心源码 上一章手写LinkedList核心源码,本章我们来手写Java HashMap的核心源码。 我们来先了解一下HashMap的原理。HashMap 字面意思 hash map,map是映射的意思,HashMap就是用hash进行映射的意思。不明白?没关系。我们来具体讲解一下HashMap的原理。 HashMap
Java中遍历HashMap的5种方式
本教程将为你展示Java中HashMap的几种典型遍历方式。 如果你使用Java8,由于该版本JDK支持lambda表达式,可以采用第5种方式来遍历。 如果你想使用泛型,可以参考方法3。如果你使用旧版JDK不支持泛型可以参考方法4。 1、 通过ForEach循环进行遍历 import java.io.IOException; import jav
HashMap深度解析:一文让你彻底了解HashMap
前言 HashMap是Map族中最为常用的一种,也是 Java Collection Framework 的重要成员。本文首先给出了 HashMap 的实质并概述了其与 Map、HashSet 的关系,紧接着给出了 HashMap 在 JDK 中的定义,并结合源码分析了其四种构造方式。 最后,通过对 HashMap 的数据结构、实现原理、源码实现三
拿下面试!HashMap源码解析!!
拿下面试!HashMap源码解析!! HashMap的设计思想 HashMap的底层结构 本文主要是讲解jdk1.8中的HashMap源码,会对jdk1.7中的HashMap做一些简单的讲解用来和jdk1.8中的HashMap进行对比。 我们先通过下图来理解HashMap的底层结构: (https
Java HashMap的原理、扩容机制、以及性能
Java HashMap ============ 说明 -- 此文档所介绍的HashMap是基于JDK1.8之后的。此文受到网上很多其他Java生态爱好者文章的影响,写此文的目的是**系统的**概括下HashMap,并把一些优秀文章的脉络连接起来起到目录作用。在此感谢优秀文章作者的启发,由于自身实力有限,若有纰漏之处还请评论指导。 原理(参考\[1\
Java中HashMap和HashTable区别
        前几天被一家公司电面的时候被问到HashMap和HashTable的区别,当时就懵逼了,hashTable是个啥?从来没用过啊,于是电面完之后马上google了一把,这回涨姿势了;         HashMap和HashTable同属于Java.util包下的集合类,Hashtable是个过时的集合类,存在于Java API中很久了。在J
java中map接口hashMap以及Enty之间的用法和关系
java中map接口hashMap以及Enty之间的转换 首先说的是map接口: * Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value; * 建(key值)不可重复,value值可以重复,一个value值可以和很多key值形成对应关系,每个建最多只能映射到一个值。 * Ma
java中的HashMap和TreeMap
HashMap和TreeMap两者都是Map,java中的Map以键值对来存储数据,通过键--key来索引值--value。 HashMap通过hashcode对其内容进行快速查找,其结果时无序的;TreeMap中的所有元素都默认进行了排序,所以当需要一个有序的结果时,使用TreeMap是比较方便的。 具体的定义和遍历方法,可以看下面的例子:
java基础之HashMap——第一节
前两篇文章粗略的介绍了java中的List,既然已经讲了两种java的数据结构,那么这篇就接着讲java中的数据结构了。 HashMap作为最常用的一种Map,就放在第一个讲了。 Map是一个较复杂的结构,本身内容不是太难,但是各个实现的思想完全不同,所以可能关于Map的介绍会比较多,源码分析会放在后边,主要是算法分析。 要讲HashM
java知识点
**java中的collection**:[https://www.cnblogs.com/taiwan/p/6954135.html](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fwww.cnblogs.com%2Ftaiwan%2Fp%2F6954135.html) **hasht
java集合系列之HashMap源码
java集合系列之HashMap源码 HashMap的源码可真不好消化!!! 首先简单介绍一下HashMap集合的特点。HashMap存放键值对,键值对封装在Node(代码如下,比较简单,不再介绍)节点中,Node节点实现了Map.Entry。存放的键值对的键不可重复。jdk1.8后,HashMap底层采用的是数组加链表、红黑树的数据结构,因此实现起
HashMap 初始化时赋值
一般初始化一个map并且给map赋值的写法: HashMap<String, String> map = new HashMap<String, String>(); map.put("name", "test"); map.put("age", "20"); 但是我想在初始化的时候就直接给map中set值。
HashMap 怎么 hash?又如何 map?
HashMap 是 Java 中 Map 的一个实现类,它是一个双列结构(数据+链表),这样的结构使得它的查询和插入效率都很高。HashMap 允许 null 键和值,它的键唯一,元素的存储无序,并且它是线程不安全的。 ![](https://oscimg.oschina.net/oscnet/24e81018b69298cf434a8eb39682070
HashMap原理学习
概述 -- HashMap对于做Java的小伙伴来说太熟悉了。估计你们每天都在使用它。它为什么叫做HashMap?它的内部是怎么实现的呢?为什么我们使用的时候很多情况都是用String作为它的key呢?带着这些疑问让我们来了解HashMap! HashMap介绍 --------- #### 1、介绍 HashMap是一个用”KEY”-“VALUE”
HashMap的实现原理
HashMap概述 ========= HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 HashMap的数据结构 ============ 在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数