`

深入剖析加强for循环,哈希表

 
阅读更多

 test 1:

   数组:

               /**
	 * 增强for循环
	 */
	@Test
	public void test1() {
		int arr[] = { 1, 2, 3 };
		for (int i : arr) {
			System.out.println(i);
		}
	}

 test 2:

    列表:

   

	@Test
	public void test2() {
		List list = new ArrayList();
		list.add(1); // 自动包装
		list.add(2);
		list.add(3);
		for (Object obj : list) {
			int i = (Integer) obj;
			System.out.println(i);
		}
	}

 

test 3:

  哈希表:

  传统方式一:



 

                 /**
	 * 第一种方式取值
	 */
	@Test
	public void test3() {
		Map map = new HashMap();
		map.put("1", "aaa");
		map.put("2", "bbb");
		map.put("3", "ccc");
		// 传统方式1:
		Set set = map.keySet();
		Iterator it = set.iterator();
		while(it.hasNext()) {
			String key = (String) it.next();
			String value = (String) map.get(key);
			System.out.println(key + "=" + value);

		}
	}

 这时你会发现输出的值和输入值得位置不一样,我们可以用LinkedHashMap;

 加强for循环:

  

                             @Test
	public void test5() {
		Map map = new LinkedHashMap();
		map.put("1", "aaa");
		map.put("2", "bbb");
		map.put("3", "ccc");
		// 增强for取map的第1种方式
		for(Object obj : map.keySet() ){
			String key = (String) obj;
			String value = (String) map.get(key);
			System.out.println(key + "=" + value);
		}
	}

 哈希表:

  传统方式二:

 

 

	@Test
	public void test4() {
		Map map = new LinkedHashMap();
		map.put("1", "aaa");
		map.put("2", "bbb");
		map.put("3", "ccc");
		// 传统方式2:
		Set set = map.keySet();
		Iterator it = set.iterator();
		while (it.hasNext()) {
			Map.Entry entry = (Entry) it.next();
			String key = (String) entry.getKey();
			String value = (String) entry.getValue();
			System.out.println(key + "=" + value);
		}

	}

 加强for循环:

  

        @Test
	public void test6() {
		Map map = new LinkedHashMap();
		map.put("1", "aaa");
		map.put("2", "bbb");
		map.put("3", "ccc");
		// 增强for取map的第2种方式
		for (Object obj : map.entrySet()) {
			Map.Entry entry = (Entry) obj;
			String key = (String) entry.getKey();
			String value = (String) entry.getValue();
			System.out.println(key + "=" + value);
		}

	}

 注意加强for循环只适合取数据,并不改变数据;

例子:

@Test
	public void test1() {
		int arr[] = { 1, 2, 3 };
		for (int i : arr) {
			i = 10 ;
		}
		System.out.println(arr[0]);
		System.out.println(arr[1]);
		System.out.println(arr[2]);
	}

 你会发现输出的是1,2,3,只是将arr数组其中的值赋给i,再改变i就与数组无关了。

  • 大小: 11 KB
  • 大小: 17.9 KB
分享到:
评论

相关推荐

    哈希表设计 哈希表 哈希表

    哈希表是一种高效的数据结构,它通过特定的函数——哈希函数,将任意大小的键(key)映射到一个固定大小的数组中,从而实现快速的查找、插入和...通过深入研究哈希表的设计,可以进一步提升我们的编程技能和算法理解。

    哈希表课程设计数据结构实验报告——哈希表设计

    哈希表课程设计数据结构实验报告——哈希表设计 针对某个集体中的人名设计一个哈希表,使得平均查找长度不超过R,完成相应的建立和查表程序. 1.2 人名为汉语拼音形式,最长不超过18个字符(如:庄双双 ...

    数据结构哈希表设计实验报告

    哈希表是一种高效的数据结构...在这个实验中,学生将深入理解哈希表的工作原理,并通过实际编程增强对数据结构的理解。通过对比不同设计方案,他们将学会如何根据具体问题选择合适的数据结构和算法,提升问题解决能力。

    哈希表源代码-哈希表模型

    理解哈希表的源代码可以帮助我们深入学习其内部机制,并能更好地在实际项目中应用。通过分析压缩包中的"哈希表源代码",我们可以学习到如何设计和实现一个高效的哈希表,包括选择合适的哈希函数、处理冲突的策略以及...

    哈希表操作(c语言版)

    ////采用除留余数法定义哈希表,哈希表长度为10,哈希函数为H(key)=key%13。产生冲突时采用线性探测法实现下面要求的功能。 ////(1)初始化哈希表,置空哈希表 ////(2)在哈希表中查找元素 ////(3)在哈希表中...

    哈希表相关操作实现

    哈希表,也被称为散列表,是计算机科学中一种非常重要的数据结构,它提供了一种高效的数据存储和检索方法。哈希表通过将键(Key)映射到一个索引位置来实现快速访问,这个索引位置是通过哈希函数计算得出的。哈希...

    哈希表设计 针对某个集体(比如你所在的班级)中的“人名”设计一个哈希表,使得平均查找长度不超过R,完成相应的建表和查表程序。

    第二步:实现哈希表的基本操作,包括创建哈希表、销毁哈希表、查找哈希表、插入哈希表等。 第三步:实现哈希函数,使用除留余数法构造哈希函数,并使用伪随机探测再散列法处理冲突。 第四步:实现查找算法,使用...

    c + + 哈希表实现数字排序

    哈希表是一种在计算机科学中广泛使用的数据结构,它的主要目的是快速查找、插入和删除元素。在这个特定的C++程序中,哈希表被用来实现一个数字排序算法,特别是针对大整数范围内的数据。程序的目标是处理多组测试...

    哈希表设计 哈希表的具体实现代码

    哈希表,也被称为散列表,是数据结构中一种高效的数据存储方式,它通过特定的哈希函数将关键字映射到一个固定大小的数组中,从而实现快速的查找、插入和删除操作。在计算机科学中,哈希表的性能优势在于它的平均时间...

    哈希表的建立和查找哈希表的建立和查找哈希表的建立和查找

    在本主题中,我们将深入探讨哈希表的建立和查找过程,以及相关的算法和设计策略。 一、哈希函数的选择与设计 哈希函数是哈希表的核心,它的主要任务是将输入(通常为字符串或整数)转化为数组的索引。一个好的哈希...

    hashtab2_C语言_哈希表删除、添加、寻找_codeblocks_

    哈希表是一种高效的数据结构,它通过特定的函数(哈希函数)将数据映射到一个固定大小的数组中,以此实现快速的查找、插入和删除操作。...通过学习和理解这个项目的源代码,你可以深入掌握哈希表的工作原理和实际应用。

    数据结构哈希表实验报告

    数据结构中的哈希表是一种高效的数据存储和检索结构,它通过特定的哈希函数将关键字映射到数组的索引位置,实现快速访问。在这个实验报告中,我们关注的是如何构建哈希表并进行基本操作,包括插入、删除、查找等。 ...

    哈希表的设计与实现C语言

    哈希表是一种高效的数据结构,它通过特定的算法——哈希函数,将任意大小的键(key)映射到一个固定大小的数组中,从而实现快速查找、插入和删除操作。在C语言中,实现哈希表需要理解其基本原理,并掌握如何利用...

    大数据结构课程设计--哈希表实验报告材料

    "大数据结构课程设计--哈希表实验报告材料" 在大数据结构课程设计中,哈希表实验报告材料是非常重要的一部分。本文档将详细介绍哈希表的设计和实现,包括哈希函数的构造、冲突处理、查找算法等。 一、哈希表的设计...

    哈希表的设计与实现(C语言课程设计)

    哈希表的设计与实现(C语言课程设计) 哈希表是一种高效的数据结构,它可以快速地存储、检索和删除数据。在计算机科学与技术领域中,哈希表是一种常用的数据结构。以下是关于哈希表的设计与实现的详细知识点: 一...

    姓名哈希表创建哈希表,将ASCII码取余得KEY值,若未发生冲突存入哈希表

    /为班级30个人的姓名设计一个哈希表,假设姓名用汉语拼音表示。要求用除留余数法 构造哈希函数,用线性探测再散列法处理冲突,平均查找长度的上限为2。 编写数据结构和算法来实现。要求:将哈希函数和处理冲突方法...

    C语言实现的Hash哈希表

    哈希表(Hash Table)是一种数据结构,它通过哈希函数将关键字映射到数组的索引位置,...在提供的压缩包文件"hash"中,可能包含了具体的C语言代码实现,通过阅读和学习这些代码,你可以更深入地理解哈希表的工作机制。

    哈希表算法 链地址法解决冲突

    哈希表是一种高效的数据结构,它通过特定的哈希函数将键(key)映射到一个固定大小的数组中,以此实现快速的插入、查找和删除操作。在本例中,我们关注的是如何利用链地址法来处理哈希冲突。 哈希函数是哈希表的...

Global site tag (gtag.js) - Google Analytics