史上最全HashMap遍历方式
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遍历方式的更多相关文章
- 史上最全HashMap红黑树解析
HashMap红黑树解析 红黑树介绍 TreeNode结构 树化的过程 红黑树的左旋和右旋 TreeNode的左旋和右旋 红黑树的插入 TreeNode的插入 红黑树的删除 TreeNode的删除节点 ...
- 史上最全的CSS hack方式一览
做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我们会极不情愿的使用这个不太友好的方式来达到大家要求的页面表现.我个人是不太推荐使用hack的,要知道 ...
- [转]史上最全的CSS hack方式一览
做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我们会极不情愿的使用这个不太友好的方式来达到大家要求的页面表现.我个人是不太推荐使用hack的,要知道 ...
- 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结
史上最全的CSS hack方式一览 2013年09月28日 15:57:08 阅读数:175473 做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我 ...
- 史上最全面的SignalR系列教程-2、SignalR 实现推送功能-永久连接类实现方式
1.概述 通过上篇史上最全面的SignalR系列教程-1.认识SignalR文章的介绍,我们对SignalR技术已经有了一个全面的了解.本篇开始就通过SignalR的典型应用的实现方式做介绍,例子虽然 ...
- 史上最全面的SignalR系列教程-3、SignalR 实现推送功能-集线器类实现方式
1.概述 通过前两篇 史上最全面的SignalR系列教程-1.认识SignalR 史上最全面的SignalR系列教程-2.SignalR 实现推送功能-永久连接类实现方式 文章对SignalR的介绍, ...
- 史上最全阿里 Java 面试题总结
以下为大家整理了阿里巴巴史上最全的 Java 面试题,涉及大量 Java 面试知识点和相关试题. JAVA基础 JAVA中的几种基本数据类型是什么,各自占用多少字节. String类能被继承吗,为什么 ...
- 史上最全的spark面试题——持续更新中
史上最全的spark面试题——持续更新中 2018年09月09日 16:34:10 为了九亿少女的期待 阅读数 13696更多 分类专栏: Spark 面试题 版权声明:本文为博主原创文章,遵循C ...
- GitHub上史上最全的Android开源项目分类汇总 (转)
GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...
随机推荐
- NumPy 会自动检测并利用 GPU 吗?
PyTorch 官网 60 分钟入门教程在介绍什么是 PyTorch 时有一句话:A replacement for NumPy to use the power of GPUs PyTorch 是 ...
- Map随笔:最常用的Map——HashMap
目录 Map随笔:最常用的Map--HashMap 前言: 1,HashMap的结构 2,HashMap的一些属性(JDK8) 3,HashMap的构造函数(JDK8) 4,HashMap的一些方法( ...
- 用 Python 破解 WiFi 密码
如今,WiFi 跟我们的生活息息相关,无处不在.没有 WiFi 的地方是没有灵魂的! 然而,比没有WiFi更让人绝望的,是有满格WiFi信号却没有密码…… 今天我们就来尝试下,如何利用pyth ...
- 【RTOS】基于V7开发板的uCOS-III,uCOS-II,RTX4,RTX5,FreeRTOS原版和带CMSIS-RTOS V2封装层版全部集齐
RTOS模板制作好后,后面堆各种中间件就方便了. 1.基于V7开发板的最新版uCOS-II V2.92.16程序模板,含MDK和IAR,支持uC/Probe https://www.cnblogs.c ...
- jQuery-实现简单的Ajax请求封装
封装的意义在于复用,在于减少重复的代码. 我在项目中做了简单的Ajax请求封装,实现方式如下: //封装Ajax请求 $.extend({ ajaxDirect:function(url,type,d ...
- 01-linux介绍
一.Linux简介 Linux内核最初只是由芬兰人林纳斯.托瓦兹在大学时出于爱好写出来的,是一套免费使用和自由传播的类Unix操作系统,是基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU ...
- new String()与toString
str.toString是调用了str这个object对象的类的toString方法.一般是返回这么一个String:[class name]@[hashCode].new String(str)是根 ...
- UI 自动化框架设想
测试框架选型: 首先,通过利用TestNG结合csv的使用,将测试用例数据转化为测试代码中的数据,减少了测试人员录入数据和准备数据的工具: 再次,通过对appium的封装,按照面向对象的思想将测试中用 ...
- NuGet 修改包路径
NuGet 是 .NET 平台下的一个免费.开源的包管理开发工具. 修改全局包管理目录 通过 NuGet 安装包时,NuGet 先将包下载至一个统一的目录,默认路径是:C:\Users\用户名\.nu ...
- 松软科技带你学前端:JavaScript 使用
<script> 标签 在 HTML 中,JavaScript 代码必须位于 <script> 与 </script> 标签之间. 实例 <script> ...