`
mywebcode
  • 浏览: 998893 次
文章分类
社区版块
存档分类
最新评论

Map、Queue、Stack的遍历

 
阅读更多

Map的遍历(哈希表)

package MapQueueStack;


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


public class TestMap {
     
	public static void main(String[] args){
		
		Map<String,String> map=new HashMap<String,String>();
		map.put("1","a");
		map.put("2", "b");
		map.put("3", "c");
		
		//最简洁,最通用的遍历方式
		for(Map.Entry<String, String> entry:map.entrySet()){
			System.out.println(entry.getKey()+"="+entry.getValue());
		}
		
		//Java5之前的比较简洁方便的遍历方式1
		System.out.println("----------1----------");
		for (Iterator<Map.Entry<String, String>> it=map.entrySet().iterator();it.hasNext();) {
			Map.Entry<String, String> entry=it.next();
			System.out.println(entry.getKey()+"="+entry.getValue());
		}
		
		//Java5之前的比较简洁方便的遍历方式2
		System.out.println("----------2----------");
		for (Iterator<String> it=map.keySet().iterator();it.hasNext();) {
		    String key=it.next();
			System.out.println(key+"="+map.get(key));
		}
		
		
		
		
	}
}

2、队列的遍历Queue

package MapQueueStack;

import java.util.Queue;
import java.util.concurrent.LinkedBlockingQueue;

import StaticDemo.staticBlock;

public class TestQueue {
	
	public static void main(String[] args){
		Queue<Integer> q=new LinkedBlockingQueue<Integer>();
		//初始化队列
		for (int i = 0; i <5; i++) {
			q.offer(i);//向队列插入数据,并插入第一个
		}
		System.out.println("-------1--------");
		for(Integer x:q){
			System.out.println("队列:"+x);
		}
		
		System.out.println("-------2--------");
		while (q.peek()!=null) {
			System.out.println("duilie:"+q.poll());
			
		}
	}

}

3.栈的遍历Stack

package MapQueueStack;

import java.util.Stack;


public class TestStack {
	
	public static void main(String[] args){
		
		Stack<Integer> s=new Stack<Integer>();
		for (int i = 0; i <10; i++) {
			s.push(i);
		}
		
		//集合遍历方式
	    for(Integer x:s){
	    	System.out.println("栈:"+x);
	    }
		System.out.println("----------1----------");
		
		//栈弹出遍历方式
		//while(s.peek()!=null){}//不健壮的判断方式,容易抛出异常,正确写法是下面:
		while(!s.empty()){
			System.out.println("zhan:"+s.pop());
		}
		
		System.out.println("----------2----------");
		
		//错误遍历方式
		for(Integer x:s){
			System.out.println("栈:"+s.pop());
		}
		
	}

}


分享到:
评论

相关推荐

    数据结构图的遍历及拓扑排序

    void dfs(linkmap *maps,int i)//i用来指定深度优先遍历的起始值 { edgenode *pp; printf("%c",maps-&gt;maplist[i].element); v[i]=1; pp=maps-&gt;maplist[i].firstedge; while(pp) { if(!v[pp-&gt;adress]) ...

    基于Python实现的数据结构与算法完整源代码+超详细注释(包含46个作业项目).zip

    03_python实现ADT Stack 04_栈的应用1括号匹配 05_栈的应用2十进制转二进制 06_栈的应用3中缀转后缀表达式 07_栈的应用4后缀表达式求值 08_python实现ADT Queue 09_队列的应用1约瑟夫问题 10_队列的应用2打印任务 11...

    lrucacheleetcode-beihu-leetcode:力扣算法

    Stack LinkedList Queue/PriorityQueue(heap) Set/Disjoint Set Map/HashTable Tree/Binary Search Tree/Spanning tree Trie 字母树 BloomFilter LRU Cache 算法 Sorting 排序算法 Graph 图 Hashing 哈希 Greedy ...

    C++进阶课程讲义_v1.0.4.pdf

    10.2.9Map和multimap容器 118 10.2.10容器共性机制研究 123 10.2.11其他 124 10.3算法 125 10.3.1算法基础 125 10.3.2STL算法中函数对象和谓词 138 10.3.3常用的遍历算法 148 10.3.4常用的查找算法 152 10.3.5常用的...

    leetcode答案-myDataStructure:我的数据结构

    BinaryTree遍历(用map实作) BST(实作insert, predecessor, successor) Augmented_BST(扩充的BST,实作exists(判断key是否存在), insert, predecessor, successor, rank(给key求排名), select(给排名求key)) AVL tree...

    标准模板库STL

    STL容器部分主要由头文件、、、、&lt; map&gt;、&lt;stack&gt;和&lt;queue&gt;组成。 (2)算法(Algorithms)。包括各种基本算法,如比较、交换、查找、排序、遍历操作、复制、修改、移除、反转、合并等等。 STL算法部分主要由...

    StructuresandAlgorithms-Code:重温数据结构与算法,代码实践

    stack & queue 栈、队列 知识点 栈 队列 双端队列 优先队列:堆结构的实现 经典题 括号匹配 表达式求值(中缀表达式转后缀表达式) 队列-层次遍历 栈实现队列、队列实现栈 双端队列-返回滑动窗口的最大值 小顶堆-返回...

    leetcode双人赛-leetcode-complete:单页上的LeetCode解决方案,还有更多!

    Stack, Queue, 或者返回值特别复杂, 或者需要大量拼接字符串时, 使用 C++。 这份文档的目的是复习用的,并不是教如何解题的,因此只有简略介绍,适合面试前查漏补缺复习。 Let the hack begin! 从数组中找出两个数字...

    传智播客扫地僧视频讲义源码

    本教程共分为5个部分,第一部分是C语言提高部分,第二部分为C++基础部分,第三部分为C++进阶部分,第四部分为C、C++及数据结构基础部分,第五部分为C_C++与设计模式基础,内容非常详细. 第一部分 C语言提高部分目录...

    C++STL程序员开发指南【可搜索+可编辑】

    本版本与网上其他资源不同之处在于,此版本可进行编辑,搜索,已进行内容识别扫描。可全选,可编辑,可剪切文字。 部分目录如下: 目录 第一篇预备知识 第1 章C++ 编程技术.........................................

    javaSE代码实例

    17.5.1 Queue接口介绍 396 17.5.2 PriorityQueue类的知识与使用 397 17.5.3 BlockingQueue接口介绍 399 17.6 阻塞的栈操作 401 17.6.1 BlockingDeque接口与LinkedBlockingDeque类简介 401 17.6.2 ...

Global site tag (gtag.js) - Google Analytics