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. [Linux]centos下安装memcached

    一.yum安装 1.Linux系统安装memcached,首先要先安装libevent库. yum install libevent libevent-devel 2.安装memcached yum ...

  2. C 语言输出不同颜色字体

    C 语言输出不同颜色字体 \033是8进制,它就是unix下终端转义符ESC(16进制1A,10进制27) ESC[xm 是unix下改变终端输出颜色的命令 所以,如果是红色,则我们定义为\033[0 ...

  3. 你可能会忽略的 Git 提交规范

    一.为什么需要规范? 无规矩不成方圆,编程也一样. 如果你有一个项目,从始至终都是自己写,那么你想怎么写都可以,没有人可以干预你.可是如果在团队协作中,大家都张扬个性,那么代码将会是一团糟,好好的项目 ...

  4. ASP.NET Core Web 应用程序系列(三)- 在ASP.NET Core中使用Autofac替换自带DI进行构造函数和属性的批量依赖注入(MVC当中应用)

    在上一章中主要和大家分享了在ASP.NET Core中如何使用Autofac替换自带DI进行构造函数的批量依赖注入,本章将和大家继续分享如何使之能够同时支持属性的批量依赖注入. 约定: 1.仓储层接口 ...

  5. C# -- is和as运算符

    一.is运算符用于判断一个对象是否可以转换为指定的类型,不会抛出异常,返回bool值用来表示是否转换成功: if (myObj is MyClass) { //do... } 当满足以下任意一种情况时 ...

  6. 史诗级最强教科书式“NIO与Netty编程”

    史诗级最强教科书式“NIO与Netty编程” 1.1 概述 1.2 文件IO 1.2.1 概述和核心API 1.2.2 案例 1.3 网络IO 1.3.1 概述和核心API 3.4 AIO编程 3.5 ...

  7. ABP学习资源

    Abp翻译文档:https://github.com/ABPFrameWorkGroup/AbpDocument2Chinese ABP官网:https://aspnetboilerplate.com ...

  8. FCC---Use the CSS Transform scale Property to Scale an Element on Hover

    The transform property has a variety of functions that let you scale, move, rotate, skew, etc., your ...

  9. 数据处理之以OLEDB方式读取Excel数据丢失的原因及解决方法

    1.引言 在应用程序的设计中,经常需要读取Excel数据或将Excel数据导入转换到其他数据载体中,C#读取Excel的方式有两种,一种是通过OLEDB方式读取,另一种为通过COM组件方式读取.近段时 ...

  10. Windows下使用PuTTY连接Centos7、Linux系统目录结构、一些操作命令

    PuTTY可以远程管理Linux.PuTTY官网:https://www.putty.org/ 一.使用PuTTY连接Centos7 下载安装后,打开如下图: 1.输入主机名或IP地址2.端口号默认2 ...