java Hashmap Map TreeMap 的几种遍历方式,全网最全,全网最强

package Collec2;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set; public class Test1 { public static void main(String[] args) {
HashMap<Student, String> hashmap_88 = new HashMap<Student, String>();
hashmap_88.put(new Student("张三", 23), "北京");
hashmap_88.put(new Student("李四", 24), "南京");
HashMap<Student, String> hashmap_99 = new HashMap<Student, String>();
hashmap_99.put(new Student("王五", 23), "上海");
hashmap_99.put(new Student("赵六", 24), "深圳");
HashMap<HashMap<Student, String>, String> hm = new HashMap<HashMap<Student, String>, String>();
hm.put(hashmap_88, "第88期基础班");
hm.put(hashmap_99, "第99期基础班"); System.out.println("遍历方式一");
Set<HashMap<Student, String>> ks = hm.keySet();
Iterator<HashMap<Student, String>> it1 = ks.iterator();
while(it1.hasNext()) {
HashMap<Student,String> next_stu_value = it1.next();
Set<Student> stu_set = next_stu_value.keySet();
Iterator<Student> stu_it = stu_set.iterator();
System.out.println(hm.get(next_stu_value)+"有以下学生");
while(stu_it.hasNext()) {
Student student = stu_it.next();
System.out.println("个人信息"+student);
}
} System.out.println("遍历方式二");
for (HashMap<Student, String> hashMap : hm.keySet()) {
System.out.println(hm.get(hashMap)+"有以下学生");
for (Student stu : hashMap.keySet()) {
System.out.println("个人信息"+stu);
}
}
System.out.println("遍历方式三");
Set<HashMap<Student,String>> x=hm.keySet();
for(Iterator<HashMap<Student,String>> it= x.iterator();it.hasNext();) {
HashMap<Student, String> stu_map_value = it.next();
System.out.println(hm.get(stu_map_value)+"有以下学生");
for( Iterator<Student> it2 = stu_map_value.keySet().iterator();it2.hasNext();) {
Student student = it2.next();
System.out.println("个人信息"+student);
}
}
System.out.println("遍历方式四");
Set<Entry<HashMap<Student,String>,String>> entrySet = hm.entrySet();
Iterator<Entry<HashMap<Student, String>, String>> itentry = entrySet.iterator();
while(itentry.hasNext()) {
Entry<HashMap<Student, String>, String> entry = itentry.next();
HashMap<Student,String> map = entry.getKey();
System.out.println(entry.getValue()+"有以下学生");
Iterator<Entry<Student, String>> iterator = map.entrySet().iterator();
while(iterator.hasNext()) {
Entry<Student, String> next = iterator.next();
System.out.println("个人信息"+next.getKey()+" "+next.getValue());
}
}
System.out.println("遍历方式五");
for (Map.Entry<HashMap<Student, String>, String> entry : hm.entrySet()) {
System.out.println(entry.getValue()+"有以下学生");
for (Map.Entry<Student,String> stu : entry.getKey().entrySet()) {
System.out.println("个人信息"+stu.getKey()+" "+stu.getValue());
}
}
System.out.println("遍历方式六");
hm.forEach((K,V)->{
System.out.println(V+"有以下学生");
K.forEach((sub_K,sub_V)->{
System.out.println("个人信息"+sub_K+" "+sub_V);
});
}); Iterator<HashMap<Student, String>> ite2 = hm.keySet().iterator();
while(ite2.hasNext()) {
HashMap<Student,String> next = ite2.next();
Iterator<Entry<Student, String>> iterator = next.entrySet().iterator();
while(iterator.hasNext()) {
Entry<Student, String> entry = iterator.next();
if(entry.getValue().equals("深圳")) {
iterator.remove();
}
}
}
System.out.println("-=-----------------------");
hm.forEach((K,V)->{
System.out.println(V+"有以下学生");
K.forEach((sub_K,sub_V)->{
System.out.println("个人信息"+sub_K+" "+sub_V);
});
}); }
}

史上最全HashMap遍历方式的更多相关文章

  1. 史上最全HashMap红黑树解析

    HashMap红黑树解析 红黑树介绍 TreeNode结构 树化的过程 红黑树的左旋和右旋 TreeNode的左旋和右旋 红黑树的插入 TreeNode的插入 红黑树的删除 TreeNode的删除节点 ...

  2. 史上最全的CSS hack方式一览

    做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我们会极不情愿的使用这个不太友好的方式来达到大家要求的页面表现.我个人是不太推荐使用hack的,要知道 ...

  3. [转]史上最全的CSS hack方式一览

    做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我们会极不情愿的使用这个不太友好的方式来达到大家要求的页面表现.我个人是不太推荐使用hack的,要知道 ...

  4. 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结

    史上最全的CSS hack方式一览 2013年09月28日 15:57:08 阅读数:175473 做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我 ...

  5. 史上最全面的SignalR系列教程-2、SignalR 实现推送功能-永久连接类实现方式

    1.概述 通过上篇史上最全面的SignalR系列教程-1.认识SignalR文章的介绍,我们对SignalR技术已经有了一个全面的了解.本篇开始就通过SignalR的典型应用的实现方式做介绍,例子虽然 ...

  6. 史上最全面的SignalR系列教程-3、SignalR 实现推送功能-集线器类实现方式

    1.概述 通过前两篇 史上最全面的SignalR系列教程-1.认识SignalR 史上最全面的SignalR系列教程-2.SignalR 实现推送功能-永久连接类实现方式 文章对SignalR的介绍, ...

  7. 史上最全阿里 Java 面试题总结

    以下为大家整理了阿里巴巴史上最全的 Java 面试题,涉及大量 Java 面试知识点和相关试题. JAVA基础 JAVA中的几种基本数据类型是什么,各自占用多少字节. String类能被继承吗,为什么 ...

  8. 史上最全的spark面试题——持续更新中

    史上最全的spark面试题——持续更新中 2018年09月09日 16:34:10 为了九亿少女的期待 阅读数 13696更多 分类专栏: Spark 面试题   版权声明:本文为博主原创文章,遵循C ...

  9. GitHub上史上最全的Android开源项目分类汇总 (转)

    GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...

随机推荐

  1. s3c2440裸机-代码重定位、清bss的改进和位置无关码

    1.代码重定位的改进 用ldr.str代替ldrb, strb加快代码重定位的速度. 前面重定位时,我们使用的是ldrb命令从的Nor Flash读取1字节数据,再用strb命令将1字节数据写到SDR ...

  2. robotframework框架 - 利用RequestsLibrary关键字轻松实现接口自动化!

    robotframework(后续简称为robot)是一款自动化测试框架,可能做各种类型的自动化测试. 本文介绍通过robotframework来做接口测试. 第一步:安装第三方库,提供接口测试的关键 ...

  3. 10. Vue - axios

    一.预备知识 1. JS面向对象 特点:ES5之前用构造函数方式,构造函数就是一个普通函数,它的函数名大写. 构造函数的问题:方法不会提升至构造函数内,而是每创建一个对象,就要把那个方法保存在每个对象 ...

  4. 2019阿里天猫团队Java高级工程师面试题之第一面

    2019阿里天猫团队Java高级工程师面试题之第二面 2019阿里天猫团队Java高级工程师面试题之第三面 1.五分钟自我介绍,说说自己的擅长及拿手的技术 自我介绍是为了考察面试者的语言表达和总结概括 ...

  5. CBrother脚本10分钟写一个拯救“小霸王服务器”的程序

    CBrother脚本语言10分钟写一个拯救“小霸王服务器”的程序 到了一家新公司,接手了一坨c++服务器代码,到处内存泄漏,这服务器没有数据库,挂了后重启一下就好了,公司就这么凑活着用了几年了,定时重 ...

  6. jQuery 源码分析(二十) DOM操作模块 插入元素 详解

    jQuery的DOM操作模块封装了DOM模型的insertBefore().appendChild().removeChild().cloneNode().replaceChild()等原生方法.分为 ...

  7. 目前下载VS2017你可能会遇到这个坑

    可能现在大伙都已经开始使用VS2019进行开发了.VS2019的下载使用也都很简单.由于工作需要,今天要在笔记本上安装VS2017,结果发现,VS2017的下载变得不是那么容易了,官方的下载方式也隐藏 ...

  8. aop分层模型——aop是元编程的一种

    织入应用层—->待织入的附加功能 应用层 织入管理层—->使用元语和织入的功能进行编程 语言层 aop元语层---〉aop机制提供的高阶抽象概念. 解释层 aop引擎层—->维护的实 ...

  9. Netty实战:设计一个IM框架

    来源:逅弈逐码 bitchat 是一个基于 Netty 的 IM 即时通讯框架 项目地址:https://github.com/all4you/bitchat 快速开始 bitchat-example ...

  10. ASP.NET Core 2.2 WebApi 系列【七】泛型仓储模式和工作单元

    在之前的泛型仓储模式实现中,每个增删改都调用了SaveChanges方法,导致每次更新都提交了事务. 在实际开发过程中,我们经常遇到同时操作多张表数据,那么按照之前的写法,对数据库提交了多次操作,开启 ...