思路:

1、定义集合

2、存储数据

3、添加元素

4、遍历

  4.1将需要遍历的集合的键封装到set集合中(这用到了entrySet方法,和Entry对象)

  4.2声明迭代器或者用for增强循环

  4.3通过set集合的getKey和getValue方法拿到值和键

5、打印输出就好

代码呈现如下:

 package com.aaa.demo;

 import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Set; public class MaoMapDemo {
public static void main(String[] args) {
//定义Java班的集合
HashMap<String, String> javas=new HashMap<String,String>();
//定义Hdoop班的集合
HashMap<String, String> Hdoop=new HashMap<String,String>();
//向班级存储学生
javas.put("001", "大冰");
javas.put("002", "北岛"); Hdoop.put("001", "舒婷");
Hdoop.put("002", "食指");
//定义aaa容器,键是班级的名字 值是两个班级的容器
HashMap<String, HashMap<String, String>> aaa=new HashMap<String,HashMap<String,String>>();
aaa.put("现代", javas);
aaa.put("近代", Hdoop);
entrySet1(aaa);
}
public static void entrySet(HashMap<String,HashMap<String,String>> aaa){
//调用集合aaa的方法 entrySet将aaa集合的键封装到Set集合中
Set<Entry<String,HashMap<String,String>>> classNameSet=aaa.entrySet();
//迭代Set集合
Iterator<Entry<String,HashMap<String,String>>> it=classNameSet.iterator();
while(it.hasNext()){
Entry<String,HashMap<String,String>> next=it.next();
//getKey getValue 得到键和值
String classNameKey = next.getKey();
System.out.println(classNameKey);
//aaa容器的键 班级姓名classMap
HashMap<String,String> classMap=next.getValue();
//entrySet将classMap集合的键封装到set集合中
Set<Entry<String,String>> studentSet=classMap.entrySet();
//迭代
Iterator<Entry<String, String>> studentIt = studentSet.iterator();
while(studentIt.hasNext()){
//遍历集合
Entry<String,String> studentEntry=studentIt.next();
String numKey = studentEntry.getKey();
String nameValue = studentEntry.getValue();
System.out.println(numKey+": "+nameValue);
}
}
}
public static void entrySet1(HashMap<String,HashMap<String,String>> aaa){
//调用集合aaa的方法 entrySet将aaa集合的键封装到Set集合中
Set<Entry<String,HashMap<String,String>>> cNS=aaa.entrySet();
//for循环遍历得到班级
for(Entry<String,HashMap<String,String>> next:cNS){
//getKey getValue 得到键和值
String classKey = next.getKey();
//aaa容器的键 班级姓名classMap
HashMap<String, String> classValue = next.getValue();
//entrySet将classMap集合的键封装到set集合中
Set<Entry<String, String>> studentSet = classValue.entrySet();
System.out.println(classKey);
//for循环遍历
//Set<Entry<String, String>> entrySet = classValue.entrySet();
for(Entry<String, String> studentEntry:studentSet){
String numKey = studentEntry.getKey();
String nameValue = studentEntry.getValue();
System.out.println(numKey+": "+nameValue);
}
}
}
}

Java的map键值对的用法,map的遍历,Entry对象的使用的更多相关文章

  1. java 把json对象中转成map键值对

    相关:Json对象与Json字符串的转化.JSON字符串与Java对象的转换 本文的目的是把json串转成map键值对存储,而且只存储叶节点的数据 比如json数据如下: {responseHeade ...

  2. 枚举类返回Map键值对,绑定到下拉框

    有时候,页面的下拉框要显示键值对,但是不想从数据库取,此时我们可以写一个枚举类, Java后台代码 1.枚举类 import java.util.HashMap; import java.util.M ...

  3. 用字典给Model赋值并支持map键值替换

    用字典给Model赋值并支持map键值替换 这个是昨天教程的升级版本,支持键值的map替换. 源码如下: NSObject+Properties.h 与 NSObject+Properties.m / ...

  4. 如何将Map键值的下划线转为驼峰

    本文不再更新,可能存在内容过时的情况,实时更新请移步我的新博客:如何将Map键值的下划线转为驼峰: 例,将HashMap实例extMap键值下划线转为驼峰: 代码: HashMap<String ...

  5. Java Map 键值对排序 按key排序和按Value排序

    一.理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. TreeMap:基于红黑树(Red-Black tre ...

  6. 通过反射,获取linkedHashMap的最后一个键值对。对map按照值进行排序。

    1:通过反射,获取linkedHashMap的最后一个键值对. Map<Integer, Integer> map = new LinkedHashMap<>(); Field ...

  7. 根据map键值对,生成update与select语句,单条执行语句

    方法 constructUpdateSQL private static String constructUpdateSQL(String tableName, List<Map<Stri ...

  8. Java的HashMap键值对存储结构解析

    容器总体结构 Map存储键值对的数据结构是“数组+链表”的结构,结合了数组查询数据快和链表增删数据快的优点:用Entry[]存储键值对,Entry为类类型,类里面有四个属性:hash.K.V.next ...

  9. a=av###b=bv###c=cv map键值对 (a,av) (b,bv) (c,cv)

    import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; impo ...

随机推荐

  1. linux上常见的压缩解压缩的命令

    压缩 tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg tar -czf jpg.tar.gz *.jpg   //将目录里所有jpg文件打包成jpg.ta ...

  2. Flutter实例一--底部规则导航栏制作

    先来看看制作效果: 前置知识--StatefulWidget  StatefulWidget具有可变状态(state)的窗口组件(widget).使用时要根据变化状态,调整State值, 能够快速初始 ...

  3. <转载>css3 概述

    参照 https://www.ibm.com/developerworks/cn/web/1202_zhouxiang_css3/ http://www.cnblogs.com/ghost-xyx/p ...

  4. IIS编辑器错误信息:CS0016解决方案

    错误信息: 运行asp.net程序时候,编译器错误消息: CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporar ...

  5. kettle实现简单的增量同步

    下载 pdi-ce-7.0.0.0-25.zip 解压 安装jdk 1.7以上的版本 配置环境变量 下载并将mysql-connector-java-5.1.39.jar 拷贝到 \data-inte ...

  6. django之paginator

    class Paginator(object):#分页器 def __init__(self, object_list, per_page, orphans=0, allow_empty_first_ ...

  7. shell中的逻辑判断while

    w|head -1|awk -F'load average: ' '{print $2}'|cut -d. -f1 #!/bin/bash while true do load=`w|head -1| ...

  8. delphi treeview checkbox

    delphi treeview checkbox 最新版Berlin还没有带checkbox的treeview?

  9. day40-socket编程

    一.socket介绍 看socket之前,先来回顾一下五层通讯流程: 但实际上从传输层开始以及以下,都是操作系统帮咱们完成的 Socket又称为套接字,它是应用层与TCP/IP协议族通信的中间软件抽象 ...

  10. 初识web.xml文件

    做了那么久的web项目都没有花心思了充分解下这个文件有什么用,看项目配制是否都差不多呢 ======================================================== ...