java中遍历map的几种方法介绍
喜欢用Java写程序的朋友都知道,我们常用的一种数据结构map中存储的是键值对,我们一般存储的方式是:
map.put(key, value);
而提取相应键的值用的方法是:
map.get(key);
确实,这些就是map的基本方法,可是,如果我想查看map中所有的元素怎么办?也就是想遍历其中的每个元素。
下面,我就介绍三种方法遍历map:
说明:我在map中存储的值是CSDN一博主的QQ签名,当我遍历的时候你会看到。
1.map不是集合,所以,map并不存在迭代器,但是,map中的一个方法可以使得map中的键成为一个集合,那么我们就可以利用集合的迭代器进行遍历,方法如下所示:
Set<Integer> s = (Set<Integer>)map.keySet();
Iterator<Integer> it = s.iterator();
int Key;
String value;
while(it.hasNext()) {
Key = it.next();
value = (String)map.get(Key);
System.out.println(Key+":\t"+value);
}
2.map提供了另一个方法--entryset,使得我们可以获得map中存储的“键值对”集合,我们可以对键值对集合进行操作,进行遍历,方法如下所示:
Set<Entry<Integer, String>> s = map.entrySet();
Iterator<Map.Entry<Integer, String>> it = s.iterator();
Map.Entry<Integer, String> entry;
int Key;
String value;
while(it.hasNext()) {
entry = it.next();
Key = entry.getKey();
value = entry.getValue();
System.out.println(Key+":\t"+value);
}
3.其实这种方法和第二种方法是一样的,只是我们用了不同的形式实现而已,这里不多说,方法如下:
for(Map.Entry<Integer, String> entry : map.entrySet()){
System.out.println(entry.getKey() + ":\t" + entry.getValue());
}
下面给出完整的测试代码以及运行后的结果:
package com.brucezhang.test;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class MapItTest {
private static Map<Integer, String> my_map = new HashMap<Integer, String>();
private static String[] my_value = {"I love three things", "The sun for the day", "The moon for the night", "The you forever"};
/**
* @param args
* Author:DLUTBruceZhang
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//给 map 赋初值
for (int i = 0; i < my_value.length; i++) {
my_map.put(i, my_value[i]);
}
//使用第一种方法进行遍历
theFirstItFun(my_map);
System.out.println("----------------------------------------");
//使用第二种方法进行遍历
theSecondItFun(my_map);
System.out.println("----------------------------------------");
//使用第三种方法进行遍历
theThirdItFun(my_map);
}
public static void theFirstItFun(Map<Integer, String> map) {
Set<Integer> s = (Set<Integer>)map.keySet();
Iterator<Integer> it = s.iterator();
int Key;
String value;
while(it.hasNext()) {
Key = it.next();
value = (String)map.get(Key);
System.out.println(Key+":\t"+value);
}
}
public static void theSecondItFun(Map<Integer, String> map){
Set<Entry<Integer, String>> s = map.entrySet();
Iterator<Map.Entry<Integer, String>> it = s.iterator();
Map.Entry<Integer, String> entry;
int Key;
String value;
while(it.hasNext()) {
entry = it.next();
Key = entry.getKey();
value = entry.getValue();
System.out.println(Key+":\t"+value);
}
}
public static void theThirdItFun(Map<Integer, String> map){
for(Map.Entry<Integer, String> entry : map.entrySet()){
System.out.println(entry.getKey() + ":\t" + entry.getValue());
}
}
}
运行结果如下:
0: I love three things 1: The sun for the day 2: The moon for the night 3: The you forever ---------------------------------------- 0: I love three things 1: The sun for the day 2: The moon for the night 3: The you forever ---------------------------------------- 0: I love three things 1: The sun for the day 2: The moon for the night 3: The you forever
java中遍历map的几种方法介绍的更多相关文章
- Java中遍历map的四种方法 - 转载
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...
- Java中遍历Map的几种方法
转自: http://blog.csdn.net/wzb56/article/details/7864911 方法分为两类: 一类是基于map的Entry:map.entrySet(); 一类是基 ...
- 谈谈java中遍历Map的几种方法
java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点 先初始化一个map public ...
- java 中遍历Map的几种方法
方法分为两类: 一类是基于map的Entry:map.entrySet(); 一类是基于map的key:map.keySet() 而每一类都有两种遍历方式: a.利用迭代器 iterator: b.利 ...
- java中遍历map对象的多种方法
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有ma ...
- Java原来如此-遍历Map的三种方法
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; pub ...
- Java中遍历Map的四种方式
Demo如下 Map<String, String> map = new HashMap<>(); map.put("key1","data1&q ...
- java中遍历map的两种方式
1.先将map对象转成set,然后再转为迭代器 Iterator iterator = map.entrySet().iterator(); while(iterator.hasNext()){ En ...
- java中遍历MAP,嵌套map的几种方法
java中遍历MAP的几种方法 Map<String,String> map=new HashMap<String,String>(); map.put("us ...
随机推荐
- 【USACO】电子游戏 有条件的背包
题目描述 翰的奶牛玩游戏成瘾!本来约翰是想把她们拖去电击治疗的,但是他发现奶牛们在玩游戏后生产 了更多的牛奶,也就支持它们了. 但是,奶牛在选择游戏平台上的分歧很大:有些奶牛想买 Xbox 360 来 ...
- 计蒜客NOIP2017提高组模拟赛(三)day1
火山喷发 火山喷发对所有附近的生物具有毁灭性的影响.在本题中,我们希望用数值来模拟这一过程. 在环境里有 n 个生物分别具有 A1,A2,⋯,An点生命值,一次火山喷发总计 MM 轮 ...
- AR934X built-in switch链路检测问题及处理方法
1 问题 在使用QSDK平台配合QCA9531方案时,碰到过2个实在无解的问题,其一:将有线口连接到其它傻瓜交换机上,然后通过无线或另一个有线口登录的设备上,执行ifconfig ethx down, ...
- python中常见错误及try-except 的用法
1.常见的错误 我们在使用python过程中会出现: (1)SyntaxError 句法错误. (2)IndentationError 缩进错误. (3)NameError 变量未定义错误. (4)T ...
- Windows下设置 ssh key,配置GitHub ssh key
1.新建一个目录,利用git工具打开 Git Bash Here 2.执行如下命令 ssh-keygen -t rsa -C "email@email.com" 其中邮箱为GitH ...
- Mysql优化--慢查询日志
Mysql 系列文章主页 =============== 默认没有开启慢查询日志功能.如果不是调优需要的话,一般不建议开启. 查看是否开启慢查询日志: SHOW VARIABLES LIKE '%sl ...
- 微信小程序开发 导入文件说没找到.json的问题
这个真的坑爹 网上的答案也没几个靠谱 说白了就是找个空文件直接创建 然后复制粘贴 反应了这玩意ide不成熟 进去之后直接创了个quick start的源码 也就是我们看的这个网页建议我们下载的源码 老 ...
- 解决问题redis问题:ERR Client sent AUTH, but no password is set
是的,这又是一个坑爹的问题. 明明在redis.conf中设置了密码,而且redis还启动了,为什么说没有密码呢? 大家都知道linux下启动redis有很多种方法, 其中有 ./redis-serv ...
- PHP Zip File 函数
通过 PHP 中的相关函数,你可以实现 zip 文件的解压缩操作! PHP Zip File 简介 Zip File 函数允许您读取压缩文件. 安装 如需在服务器上运行 Zip File 函数,必须安 ...
- docker volume创建、备份、nfs存储
docker存储volume #环境 centos7.4 , Docker version 17.12.0-ce docker volume创建.备份.nfs存储 #docker volume 数据存 ...