Map的遍历方式,常用的key-value遍历方式
在开发过程中经常会遇到 map 的遍历,本文将会介绍四种常用的 key-value 遍历方式
说明:
增强 for 循环遍历
- 先取出 map 的 keySet,进行遍历,再取出对应 key 的 value 值
- 先取出 map 的 entrySet,进行遍历,再取出对应 key - value 值
迭代器遍历
- 先取出 map 的 keySet,进行遍历,再取出对应 key 的 value 值
- 先取出 map 的 entrySet,进行遍历,再取出对应 key - value 值
Map中的 keySet() 用于取 map 中的所有 key 的集合
Map中的 entrySet() 用于取 map 中的所有 entry 的集合。
Entry 是一个包含 key 和 value 的键值对对象,内部
先构建一个 map 集合:
1、构建集合
HashMap hashMap = new HashMap();
hashMap.put("key1","value1");
hashMap.put("key2","value2");
hashMap.put("key3","value3");
hashMap.put("key4","value4");
2、遍历
2.1、方法一:先用 hashMap.keySet() 方法取出所有的 key 的集合,再用增强循环 for 遍历
System.out.println("====1、先用 hashMap.keySet() 方法取出所有的 key 的集合,再用增强循环 for 遍历====");
Set keyset = hashMap.keySet();
for(Object key:keyset){
System.out.println(key+"-"+hashMap.get(key));
}
运行结果如下:
2.2、方法二:先用hashmap.keySet() 方法取出所有 key 的集合,再用迭代器遍历取 value
System.out.println("====2、先用hashmap.keySet() 方法取出所有 key 的集合,再用迭代器遍历取 value====");
Iterator iterator = keyset.iterator();
while(iterator.hasNext()){
Object key = iterator.next();
System.out.println(key+"-"+hashMap.get(key));
}
运行结果:
2.3、方法三:先用 hashMap.通过entrySet() 方法取出所有的 key-value 的集合,再用增强循环 for 遍历一一取出 key 和 value
System.out.println("====3、先用 hashMap.通过entrySet() 方法取出所有的 key-value 的集合,再用增强循环 for 遍历一一取出 key 和 value====");
Set set = hashMap.entrySet();
for(Object key:set){
Map.Entry entry = (Map.Entry) key;
System.out.println(entry.getKey()+"-"+entry.getValue());
}
运行结果:
2.4、方法四:先用 hashMap.keySet() 方法取出所有的 key 的集合,再用增强循环 for 遍历
System.out.println("====4、先用 hashMap.entrySet() 方法取出所有的 key-value 的集合,再用迭代器遍历一一取出 key 和 value====");
Set set1 = hashMap.entrySet();
Iterator iterator1 = set1.iterator();
while(iterator1.hasNext()){
Object itset = iterator1.next();
Map.Entry entry = (Map.Entry) itset;
System.out.println(entry.getKey()+"-"+entry.getValue());
}
运行结果:
3、完整代码
package com.example.demo;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapDemo {
public static void main(String[] args) {
HashMap hashMap = new HashMap();
hashMap.put("key1","value1");
hashMap.put("key2","value2");
hashMap.put("key3","value3");
hashMap.put("key4","value4");
/*1、先用keySet()取出所有key值,再取出对应value--增强for循环遍历*/
System.out.println("====1、先用 hashMap.keySet() 方法取出所有的 key 的集合,再用增强循环 for 遍历====");
Set keyset = hashMap.keySet();
for(Object key:keyset){
System.out.println(key+"-"+hashMap.get(key));
}
/*2、先用hashmap.keySet() 方法取出所有 key 的集合,再用迭代器遍历取 value*/
System.out.println("====2、先用hashmap.keySet() 方法取出所有 key 的集合,再用迭代器遍历取 value====");
Iterator iterator = keyset.iterator();
while(iterator.hasNext()){
Object key = iterator.next();
System.out.println(key+"-"+hashMap.get(key));
}
/*3、先用 hashMap.通过entrySet() 方法取出所有的 key-value 的集合,再用增强循环 for 遍历一一取出 key 和 value*/
System.out.println("====3、先用 hashMap.通过entrySet() 方法取出所有的 key-value 的集合,再用增强循环 for 遍历一一取出 key 和 value====");
Set set = hashMap.entrySet();
for(Object key:set){
Map.Entry entry = (Map.Entry) key;
System.out.println(entry.getKey()+"-"+entry.getValue());
}
/*4、先用 hashMap.entrySet() 方法取出所有的 key-value 的集合,再用迭代器遍历一一取出 key 和 value*/
System.out.println("====4、先用 hashMap.entrySet() 方法取出所有的 key-value 的集合,再用迭代器遍历一一取出 key 和 value====");
Set set1 = hashMap.entrySet();
Iterator iterator1 = set1.iterator();
while(iterator1.hasNext()){
Object itset = iterator1.next();
Map.Entry entry = (Map.Entry) itset;
System.out.println(entry.getKey()+"-"+entry.getValue());
}
}
}
Map的遍历方式,常用的key-value遍历方式的更多相关文章
- 遍历HashMap常用的的三种方式
遍历HashMap常用的的三种方式 HashMap是我们使用非常多的集合之一,下面就来介绍几种常用的HashMap的遍历方式. 1.首先定义一个新的HashMap,并往里面添加一些数据. HashMa ...
- Map接口中的常用方法和Map集合遍历键找值方式
Map接口中定义了很多方法,常用的如下: public V put(K key,V value) 将指定的值与此映射中的指定键相关联(可选操作) V remove(Object key); 如果此映射 ...
- Java Map集合 遍历 五种方式(包含 Lambda 表达式遍历)
示例代码如下: package com.miracle.luna.lambda; import java.util.HashMap; import java.util.Iterator; import ...
- 信1705-2 软工作业最大重复词查询思路: (1)将文章(一个字符串存储)按空格进行拆分(split)后,存储到一个字符串(单词)数组中。 (2)定义一个Map,key是字符串类型,保存单词;value是数字类型,保存该单词出现的次数。 (3)遍历(1)中得到的字符串数组,对于每一个单词,考察Map的key中是否出现过该单词,如果没出现过,map中增加一个元素,key为该单词,value为1(
通过学习学会了文本的访问,了解一点哈希表用途.经过网上查找做成了下面查询文章重复词的JAVA程序. 1 思 思路: (1)将文章(一个字符串存储)按空格进行拆分(split)后,存储到一个字符串(单词 ...
- Map随笔:最常用的Map——HashMap
目录 Map随笔:最常用的Map--HashMap 前言: 1,HashMap的结构 2,HashMap的一些属性(JDK8) 3,HashMap的构造函数(JDK8) 4,HashMap的一些方法( ...
- iBATIS 传MAP处理方式(value是list的方式)
1.前提条件 参数是map结构的数据 key:String 类型 value:list 集合 2.处理方式 遍历集合一般常规的方式使用iterate,这里也不例外了,如下 <iterate op ...
- JavaScript 中的常用12种循环遍历(数组或对象)的方法
1.for 循环 let arr = [1,2,3]; for (let i=0; i<arr.length; i++){ console.log(i,arr[i]) } // 0 1 // 1 ...
- Map集合中,关于取值和遍历的相关操作
这是自己的关于map集合的相关操作的小研究,分享给大家. 主要代码内容包含以下: 1,map集合的遍历 2,根据key值获取value值 3,根据value值获取key值 4,返回最大value值对应 ...
- 【温故知新】——原生js中常用的四种循环方式
一.引言 本文主要是利用一个例子,讲一下原生js中常用的四种循环方式的使用与区别: 实现效果: 在网页中弹出框输入0 网页输出“欢迎下次光临” 在网页中弹出框输入1 网页输出“查询中……” 在 ...
- Google的分布式计算模型Map Reduce map函数将输入分割成key/value对
http://www.nowamagic.net/librarys/veda/detail/1768 上一篇 大规模分布式数据处理平台Hadoop的介绍 中提到了Google的分布式计算模型Map R ...
随机推荐
- 安装 Helm3 管理 Kubernetes 应用
文章转载自:http://www.mydlq.club/article/51/ 系统环境: Helm 版本:v3.5.0 Kubernetes 版本:v1.18.2 一.Helm 介绍 Helm 是一 ...
- MySQL配置不当导致Sonarqube出错的一次经历:Packet for query is too large (16990374 > 13421568)
公司里部署了Jenkins + Sonarqube对项目代码进行构建和代码质量扫描. 某个大型项目报告项目构建失败.进jenkins看,该项目构建日志中的报错信息是这样的: 通过错误堆栈中的信息可以判 ...
- 关于在Linux上安装aws cli版本1的记录
AWS Command Line Interface (AWS CLI) 是一种开源工具,让您能够在命令行 Shell 中使用命令与 AWS 服务进行交互. 因公司项目要求,要在Linux服务器安装a ...
- Linux命令系列之ls——原来最简单的ls这么复杂
Linux命令系列之ls--原来最简单的ls这么复杂 ls命令应该是我们最常用的命令之一了,但是我们可能容易忽略那些看起来最简单的东西. 简介 ls命令的使用格式如下 ls [选项] [具体的文件] ...
- vue2双向绑定原理:深入响应式原理defineProperty、watcher、get、set
响应式是什么?Vue 最独特的特性之一- 就是我们在页面开发时,修改data值的时候,数据.视图页面需要变化的地方变化. 主要使用到哪些方法? 用 Object.defineProperty给watc ...
- 微信抢红包小技巧(python模拟100万次)
之前,在网上看到一篇文章,说多人抢红包时,微信红包金额的分配规则是0.01元到当前剩余金额平均数的2倍(最后一个人金额为当前剩下的所有金额),所以写了一个python程序,模拟量一百万次,分析了一下抢 ...
- Codeforces Round #553 (Div. 2)/codeforces1151
CodeForces1151 Maxim and Biology 解析: 题目大意 每次可以使原串中的一个字符\(+1/-1\),\(Z + 1\to A, A -1\to Z\),求至少修改多少次可 ...
- 30.Serializers模块源码解析
rest_framework序列化类的继承关系 field类: 序列化基类的基类 BaseSerializer: 继承field 派生ListSerializer序列化类 Serializer: 继承 ...
- 利用xtrabackup8完全,增量备份及还原MySQL8
利用xtrabackup8完全,增量备份及还原MySQL8 1.环境准备 服务器 作用 数据库版本 xtrabackup版本 10.0.0.8 数据备份 mysql8.0.26 8.0.28 10.0 ...
- 逆向使用 execjs时遇到 UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 28: illegal multibyte sequence
问题: 如下图所示 今天在维护以前的爬虫代码 发现有个网站一直爬取失败,我原以为是网站逆向的部分改了,搞了好久才发现是GBK的问题 接下来告诉大家解决方案 解决方案 如下图 在下图这个subbsubp ...