`

在容器中使用增强的for循环,简洁大气,结构清晰

阅读更多

除了增强的for循环使代码简洁大气,结构清晰外,我们还可以看到对Map键值不同的取值方式的效率介绍。

在这儿也是对增强for循环的相见恨晚啊!




之前的使用情况

package map;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class EntryOfMap {
	/*
	 * Set<Map.Entry<K,V>>entrySet() 返回此映射中包含的映射关系的 set 视图。
	 * 
	 */
	public static void main(String[] args) {
		String str[] = "java java platform is is is is perfect".split(" ");
		statistics(str);
	}

	public static void statistics(String str[]) {
		Map<String, Integer> m = new HashMap<String, Integer>();// 用HashMap,因为Hash的查找快
		for (int i = 0; i < str.length; i++) {
			Integer freq = m.get(str[i]);
			m.put(str[i], freq == null ? 1 : freq + 1);
		}
		// 效率高
		Set<Map.Entry<String, Integer>> set = m.entrySet();
		Iterator<Map.Entry<String, Integer>> it = set.iterator();
		// 下面这一句等价于上面的两句
		// Iterator<Map.Entry<String, Integer>> it = m.entrySet().iterator();
		while (it.hasNext()) {
			Map.Entry<String, Integer> me = it.next();
			System.out.println(me.getKey() + " " + me.getValue());// 直接获取键和值
		}
		// 效率低
		Iterator<String> iter = m.keySet().iterator();
		while (iter.hasNext()) {
			String s = iter.next();
			System.out.println(s + " " + m.get(s));
		}

	}
}



使用增强的for循环

package map;

import java.util.HashMap;
import java.util.Map;


public class EntryOfMap2{
	/*
	 * 在EntryOfMap.java的基础上使用增强for循环对代码进行了优化
	 * 由于增强for循环的使用:这样的代码就非常的简洁了哦
	 */
	public static void main(String[] args) {
		String str[] = "java java platform is is is is perfect".split(" ");
		statistics(str);
	}

	public static void statistics(String str[]) {
		Map<String, Integer> m = new HashMap<String, Integer>();// 用HashMap,因为Hash的查找快
		for (int i = 0; i < str.length; i++) {
			Integer freq = m.get(str[i]);
			m.put(str[i], freq == null ? 1 : freq + 1);
		}
		// 用Map.Entry效率高
		for (Map.Entry<String, Integer> me : m.entrySet())
			System.out.println(me.getKey() + " " + me.getValue());
		// 通过键来取值效率低
		for (String s : m.keySet())
			System.out.println(s + " " + m.get(s));

	}
}


也就是比较这两段代码

1.
		// 效率高
		Set<Map.Entry<String, Integer>> set = m.entrySet();
		Iterator<Map.Entry<String, Integer>> it = set.iterator();
		// 下面这一句等价于上面的两句
		// Iterator<Map.Entry<String, Integer>> it = m.entrySet().iterator();
		while (it.hasNext()) {
			Map.Entry<String, Integer> me = it.next();
			System.out.println(me.getKey() + " " + me.getValue());// 直接获取键和值
		}
		// 效率低
		Iterator<String> iter = m.keySet().iterator();
		while (iter.hasNext()) {
			String s = iter.next();
			System.out.println(s + " " + m.get(s));
		}
------------------这个比较式非常的明显啊---------------------------------2.
		// 用Map.Entry效率高
		for (Map.Entry<String, Integer> me : m.entrySet())
			System.out.println(me.getKey() + " " + me.getValue());
		// 通过键来取值效率低
		for (String s : m.keySet())
			System.out.println(s + " " + m.get(s));




.
分享到:
评论

相关推荐

    增强for循环

    这里的“类型”是集合或数组中元素的类型,“变量”是在循环中使用的临时变量,用于存储每次迭代时当前元素的值,“集合或者数组”则是我们想要迭代的对象。 例如,如果我们有一个整数数组,我们可以使用增强型for...

    MATLAB工具箱大全-将多重循环转为单重循环-For-Each

    然而,在MATLAB R2017b及以后的版本中,可以直接使用`for-each`循环处理向量或数组,因此我们可以进一步简化代码: ```matlab A = [1, 2, 3]; B = [4, 5, 6]; result = A .* B; % 直接使用向量乘法,无需循环 ``` ...

    JAVA练习题(for循环练习题等)

    使用`for`循环遍历101到200之间所有的数字,并检查每个数字是否为素数。素数是指只能被1和它本身整除的大于1的自然数。 ```java for (int i = 101; i ; i++) { boolean isPrime = true; for (int j = 2; j (i); j...

    Go语言介绍(十)--Go 语言循环语句.docx

    此外,还可以利用for循环创建无限循环,只需将循环条件设置为true,并在循环体内部使用break语句退出循环。 在Go语言中,使用continue语句可以跳过当前迭代的剩余部分,并继续执行下一次迭代。这一特性常用于在循环...

    python基础教程:for循环用法.pdf

    Python中的for循环是一种非常基础且常用的控制流程结构,它用于遍历任何可迭代对象中的元素。在Python中,可迭代对象包括但不限于列表、元组、字符串、字典以及集合等。接下来,我们将深入探讨for循环的用法及其在...

    简洁大气灰色企业网站模板.rar

    该资源是一个名为"简洁大气灰色企业网站模板.rar"的压缩包,内含一套全面的企业网站设计模板。这个模板采用灰色为主色调,旨在营造出专业、稳重且不失时尚感的视觉效果,适合各类企业的在线形象展示。以下是这套模板...

    for_each 返回值

    在 C++ STL 中,for_each 算法是一种非常有用的算法,它可以对容器中的每个元素应用一个函数对象(仿函数)。在本文中,我们将详细介绍 for_each 返回值的使用方法和实现原理。 for_each 算法概述 for_each 算法是...

    EXCEL在压力容器中的应力分析与结构优化

    在压力容器设计与制造领域,应用Excel进行应力分析和结构优化是一个重要的研究方向。本文将基于弹性失效设计准则,对压力容器在最苛刻工况下壳体所受最大拉应力进行最小化的目标,详细探讨利用Excel软件在这一领域内...

    1、华睿算法平台MVP逻辑工具组合使用-循环容器

    其核心功能之一就是循环容器,它允许开发者在算法运行过程中,创建一个可以重复执行特定操作的环境。循环容器作为算法编程中的一个基本构件,可以在不同的应用场景中,通过重复执行计算步骤,处理批量数据,实现高效...

    简洁大气的灰色主题倒计时效果实现

    在IT行业中,创建一个“简洁大气的灰色主题倒计时效果”是常见需求,尤其在网页设计、App界面或者活动预告等场景。这样的设计能够吸引用户的注意力,同时提供清晰的时间信息。下面我们将深入探讨实现这一效果所涉及...

    java 数组、for循环、dowhile实例代码

    在Java编程语言中,数组、for循环和do-while循环是基础且至关重要的概念,用于组织数据和控制程序流程。让我们深入探讨这些知识点,并通过实例代码来加深理解。 首先,数组是存储相同类型数据集合的容器。在Java中...

    cpp练习反思汇总(循环结构).docx

    在C++语言的程序设计学习过程中,循环结构是程序控制流程的基础,它能够使程序根据特定的条件重复执行一系列语句,直至条件不再满足。在编程实践中,合理运用循环结构能够极大地提高代码的效率和可读性。本文汇总了...

    简洁大气的jQuery响应式全屏幻灯片特效代码

    本项目“简洁大气的jQuery响应式全屏幻灯片特效代码”充分利用了jQuery的强大功能,提供了适应不同屏幕尺寸的全屏幻灯片解决方案,特别适合于现代网页设计,特别是那些注重移动友好性的网站。 首先,我们要理解...

    压力容器焊缝及结构设计

    焊缝质量低下往往成为导致压力容器破坏的主要原因,这是由于在压力容器运行过程中,焊缝承受着与其它结构部分不同的应力集中,如果焊缝存在缺陷,如裂纹、气孔、夹杂等,将可能成为引起容器失效的薄弱环节。...

    python判断,循环,函数,数据容器思维导图

    以上就是python判断、循环、函数、数据容器这四大核心部分的基本概念和用法,通过思维导图的形式,我们可以更加直观地理解这些概念之间的关系,以及它们在实际编程中的应用。掌握这些基础知识,对于学习Python编程来...

    网站模板21-蓝色简洁大气船舶运输企业官网模板.zip

    简洁大气的设计风格体现在布局清晰、信息层次分明,避免过多的装饰元素,使用户能快速获取关键信息。 2. **网页结构**:一个优质的网站模板应具备良好的导航结构,方便用户快速找到所需信息。此模板可能包括首页、...

    java练习题--容器使用练习

    6. 遍历机制:熟悉foreach循环(增强for循环)和迭代器两种遍历容器的方法,并在练习题中使用这两种方法操作不同类型的容器。 7. 容器与多线程:学习在多线程环境中使用容器,了解线程安全问题,例如同步容器类(如...

    压力容器用CAD增强插件VCAD

    通过集成在主流CAD软件中,如AutoCAD或SolidWorks,VCAD能够帮助工程师快速绘制容器的二维草图和三维模型,实现快速出图,同时支持参数化设计,使得设计修改变得更加灵活。 VCAD的核心功能包括: 1. 自动计算:...

    简洁大气带进度条的URL跳转页面HTML源码

    在这个“简洁大气带进度条的URL跳转页面HTML源码”中,我们主要关注两个关键元素:页面的布局设计以及进度条功能的实现。 首先,页面布局通常涉及到HTML的容器元素,如`&lt;div&gt;`,用于组织内容。设计师可能会使用CSS...

Global site tag (gtag.js) - Google Analytics