遍历MAP的四种方法(增强for循环)

增强for循环:


设计的本意:抛弃迭代器
增强for循环只能遍历数组和实现了Iteratable接口的对象。
语法:
    for(元素的类型 变量名:数组或实现了Iteratable接口的对象){
    System.out.println(变量名);

    }

增强for循环的特点:只适合取数据。要想在遍历时改元素的值,请使用传统for循环。


遍历MAP的四种方法:

//增强for循环
public class Demo {
	//传统方式遍历Map
	@Test
	public void test3(){
		Map map = new LinkedHashMap();
		map.put("a", "aaa");
		map.put("b", "bbb");
		map.put("c", "ccc");
		
		Set keys = map.keySet();
		Iterator it = keys.iterator();
		while(it.hasNext()){
			String key = (String)it.next();
			String value = (String) map.get(key);
			System.out.println(key+"="+value);
		}
	}
	
	@Test//增强for遍历map方式一
	public void test31(){
		Map map = new LinkedHashMap();
		map.put("a", "aaa");
		map.put("b", "bbb");
		map.put("c", "ccc");
		
		Set keys = map.keySet();
		for(Object obj:keys){
			String key = (String)obj;
			String value = (String) map.get(key);
			System.out.println(key+"="+value);
		}
		
	}
	//传统方式遍历Map
	@Test
	public void test4(){
		Map map = new LinkedHashMap();
		map.put("a", "aaa");
		map.put("b", "bbb");
		map.put("c", "ccc");
		
		Set me = map.entrySet();
		Iterator it = me.iterator();
		while(it.hasNext()){
			Map.Entry m = (Map.Entry)it.next();
			String key = (String) m.getKey();
			String value = (String)m.getValue();
			System.out.println(key+"="+value);
		}
		
	}
	@Test//增强for循环遍历map方式二
	public void test41(){
		Map map = new LinkedHashMap();
		map.put("a", "aaa");
		map.put("b", "bbb");
		map.put("c", "ccc");
		
		for(Object obj:map.entrySet()){
			Map.Entry me = (Map.Entry )obj;
			String key = (String) me.getKey();
			String value = (String)me.getValue();
			System.out.println(key+"="+value);
		}
		
	}
}



  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大数据实验报告全文共6页,当前为第1页。大数据实验报告全文共6页,当前为第1页。 大数据实验报告全文共6页,当前为第1页。 大数据实验报告全文共6页,当前为第1页。 实验报告 2019 - 2020 学年第一学期 开课单位: 年级专业: 课程名称: 云计算与大数据实验 主讲教师: 课程序号: 课程代码: 学 号: 姓 名: 大数据实验报告全文共6页,当前为第2页。大数据实验报告全文共6页,当前为第2页。社交好友推荐项目 大数据实验报告全文共6页,当前为第2页。 大数据实验报告全文共6页,当前为第2页。 实验目的 《云计算与大数据》是一门实践性很强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。本实验的主要目的在于: 1、进一步学习和巩固本课程所讲解的主要内容。 2、重点掌握站Hadoop平台的搭建,HDFS的基本操作,MapReduce对实际问题解决的编程设计等。 3、拓展练习,掌握Hadoop与已学内容的综合应用。 4、掌握MapReduce编程模型 5、通过社交好友推荐学会MapReduce的编程思路 开发工具 1、Jdk 2、Hadoop 3、Eclipse 项目描述 如果A和B具有好友关系,B和C具有好友关系,而A和C却不是好友关系,那么我们称A和C这样的关系为:二度好友关系。 在生活中,二度好友推荐的运用非常广泛,一般在主流的社交平台上关于好友推荐上就有这方面的应用,当然,在当下海量的数据中,利用MapReduce编程模型来实现不失为一种较好的方式,具体的过程如下图。 这里需要同学们依据Mapreduce的设计原理通过编码实现该过程,这里建大数据实验报告全文共6页,当前为第3页。大数据实验报告全文共6页,当前为第3页。议的步骤有:1、搭建项目环境 2、Map阶段实现 3、Reduce阶段实现 4、Run程序主类实现。 大数据实验报告全文共6页,当前为第3页。 大数据实验报告全文共6页,当前为第3页。 实验内容与方法 在生活中,二度好友推荐的运用非常广泛,一般在主流的社交平台上关于好友推荐上就有这方面的应用。在传统的关系型数据库中,可以通过图的广度优先遍历算法实现,而且深度限定为2,然而在海量的数据中,这样的遍历成本太大,所以有必要利用MapReduce编程模型来并行化。本次实验就是通过MapReduce的思想来实现二度好友。我使用的方法是先以一个用户作为中间联系人,比如A和B是好友关系,B又和C是好友关系,那么B就是他们的中间人,他们都可以通过B来认识。然后我分别给A和C一个不同的标记来区分。首先在mapper阶段输出两行数据,xx【0】,xx【1】和xx【1】,xx【0】. 并且分别给了+号和-号进行标记,然后mapper阶段完了会自动进行合并。 所以在reduce阶段我们可以得到以Key为中间人的好友集合,并将两个不同标记的好友分别存进不同的列表里。大数据实验报告全文共6页,当前为第4页。大数据实验报告全文共6页,当前为第4页。 大数据实验报告全文共6页,当前为第4页。 大数据实验报告全文共6页,当前为第4页。 接下来用for循环求出这两个集合的笛卡尔积,并且进行输出,得到的就是二度好友的结果。 实验结果 输入的数据: 输出的数据: 验证了我的思路是对的。 大数据实验报告全文共6页,当前为第5页。大数据实验报告全文共6页,当前为第5页。实验总结 大数据实验报告全文共6页,当前为第5页。 大数据实验报告全文共6页,当前为第5页。 这次的实验总体来说完成的不错,让我理解了MapReduce的整体流程,还有MapReduce的"分而治之"的思想,让任务更加高效的完成。将任务分开处理的过程为map阶段,将每个小任务的结果合并到一起的过程为reduce阶段。而这个二次好友推荐项目想要完成,要先了解他的思路,概念。我用的只是很多种方法中的一种。我是用标记来区分以key为中间人的好友,然后再得到二次好友的方法。这种方法可能也会有一些不足之处,我也会尽量去完善,用更加高效的方法完成它。 参考材料 百度百科 云计算与大数据实验 附录 大数据实验报告全文共6页,当前为第6页。大数据实验报告全文共6页,当前为第6页。 大数据实验报告全文共6页,当前为第6页。 大数据实验报告全文共6页,当前为第6页。 大数据实验报告
目 录 第一章 JAVA入门 10 计算机语言发展史 10 机器语言 10 汇编语言 10 高级语言 10 其他高级语言 11 JAVA发展简史 12 JAVA为什么能够流行? 13 JAVA各版本的含义 13 JAVA技术体系架构 14 JAVA的特性和优势 14 JAVA应用程序的运行机制 15 JVM(JAVA VIRTUAL MACHINE) 16 Java运行时环境JRE(Java Runtime Environment) 17 JAVA语言应用范围 18 第一个JAVA程序 18 JAVA开发环境搭建 18 一个典型的JAVA程序的编写和运行过程 19 第一个程序常见错误 20 第一个JAVA程序的总结和提升 20 常用Java开发工具 20 常用dos命令 21 本章笔试作业 21 本章上机操作 21 第二章(1) 编程的基本概念 22 注释 22 标识符 22 关键字/保留字 23 变量(variable) 24 常量(Constant) 25 命名规则(规范) 25 基本数据类型(primitive data type) 26 整型变量 26 浮点型 27 字符型(2个字节): 28 boolean类型 29 运算符(operator) 29 二元运算符 29 一元运算符 30 布尔逻辑表达符 30 位运算符 30 扩展运算符 31 字符串连接符 31 三目条件运算符 31 运算符优先级的问题 31 自动类型转换 32 基本类型转化时常见错误和问题 33 方法 33 简单的键盘输入和输出 33 本章思考作业 34 上机操作 34 第二章(2) 控制语句 35 顺序结构 35 选择结构 35 if单选择结构 35 if-else双选择结构 35 If-elseif-else多选择结构 36 switch多选择结构 37 循环结构 39 While和dowhile的区别 41 For循环 42 break语句和continue语句 47 语句块 48 递归结构 49 本章作业 50 本章上机操作 51 第三章 JAVA面向对象程序开发 52 编程语言发展史 52 类和对象是如何产生发展的?如何进化的? 52 面向对象思想初步(OOP初步Object Oriented Programming) 53 面向对象编程的语言的三大特征简介 56 对象和类的概念 56 类和对象初步 57 测试类的定义方式 57 简单的学生类编写示例 58 内存分析 59 属性(field,或者叫成员变量) 59 引用类型 60 类的方法 60 对象的创建和使用 60 构造器(或者叫做构造方法,constructor) 60 垃圾回收机制(Garbage Collection) 63 方法的重载(overload),构造方法的重载 63 this关键字 65 static 关键字 66 静态初始化块(经常用来初始化类,加载类信息时执行!) 67 package 68 JDK中的主要包 68 import 68 eclipse的使用 69 继承(extend, inheritance) 70 为什么需要继承?继承的作用? 70 继承介绍 70 如何实现继承? 70 继承使用要点 71 Object类 72 toString方法 72 equals方法 73 super关键字 74 方法的重写(override) 74 隐藏/封装(encapsulation) 75 为什么需要封装?封装的作用和含义? 75 使用访问控制符,实现封装 76 封装的使用细节 76 多态(polymorphism) 76 为什么需要多态? 76 如何实现多态? 77 方法绑定(method binding) 77 静态绑定 77 动态绑定 77 多态的使用要点 78 对象的转型(casting) 79 final 81 抽象类 82 抽象类的使用要点 83 接口 83 为什么需要接口? 84 如何定义接口? 84 接口的本质探讨 84 接口使用要点 85 接口的多继承 86 面向接口编程 87 OOP更多应用 87 组合 87 内部类(innerclasses) 88 字符串(java.lang.String类)的使用 90 字符串相等的判断 92 思考作业 93 上机作业 94 第四章 异常机制 95 导引问题 95 异常(Exception)的概念 96 异常分类 96 Error 97 Error和Exception的区别 97 Exception 97 异常的处理办法之一,捕获异常 99 try块 99 catch 99 finally 100 try, catch,finally ,return 执行顺序 100 异常的处理办法之二,声明异常:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值