Map三种遍历方式

package decorator;
import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
 import org.junit.Before;
 import org.junit.Test;
 /**
 * 对于Map的三种方式遍历 1.keySet() 2.values() 3.entrySet()
 * 三种方式得到Set之后,都可以使用 foreach或者iterator, 不能使用for,因为数据结构决定的  *
 * @author Administrator  *
 */
public class MapCycle {
           Map<Integer, String> map;
           // 准备好数据
           @Before
           public void testData() {
           map = new HashMap<>();
           map.put(1, "凌一");
           map.put(2, "凌二");
           map.put(3, "凌三");
           map.put(4, "凌四");
           map.put(5, "凌五");
           }
/** 测试三种方式,这三种方式最后都是遍历Set,于是都可以使用
foreach或者Iterator **/
             // 方式1: keySet()方法获取到Set(key)
             @Test
             public void testFirst() {
             Set<Integer> set = map.keySet();
             for (Integer integer : set) {
             System. out.println( map.get(integer));
                }
             }
              // 方式2:values()方法获取到Collection(value)
              @Test
              public void testSecond() {
              Collection<String> collection = map.values();
              for (String string : collection) {
              System. out.println(string);
                }
              }
              // 方式3:entrySet()方法获取到Set<Entry<key,value>>
              @Test
               public void testThird() {
               Set<Entry<Integer, String>> entries = map.entrySet();
               for (Entry<Integer, String> entry : entries) {
               System. out.println(entry.getValue());
                        }
                    }
               }

  

时间: 2024-11-05 01:40:54

Map三种遍历方式的相关文章

set的三种遍历方式-----不能用for循环遍历(无序)

set的三种遍历方式,set遍历元素 list 遍历元素 http://blog.csdn.net/sunrainamazing/article/details/71577662 set遍历元素 http://blog.csdn.net/sunrainamazing/article/details/71577893 map遍历元素 http://blog.csdn.net/sunrainamazing/article/details/71580051 package sun.rain.amazi

重温数据结构:二叉树的常见方法及三种遍历方式 Java 实现

读完本文你将了解到: 什么是二叉树 Binary Tree 两种特殊的二叉树 满二叉树 完全二叉树 满二叉树 和 完全二叉树 的对比图 二叉树的实现 用 递归节点实现法左右链表示法 表示一个二叉树节点 用 数组下标表示法 表示一个节点 二叉树的主要方法 二叉树的创建 二叉树的添加元素 二叉树的删除元素 二叉树的清空 获得二叉树的高度 获得二叉树的节点数 获得某个节点的父亲节点 二叉树的遍历 先序遍历 中序遍历 后序遍历 遍历小结 总结 树的分类有很多种,但基本都是 二叉树 的衍生,今天来学习下二

树的高度,深度,层数和三种遍历方式

树的高度: 当只有一个根节点的时候,高度就是0. //计算树的高度int depth(Node node){ if(node == NULL) return -1; int l = depth(node->left); int r = depth(node->right); return (l < r)?(r+1):(l+1);//当只有一个根节点的时候,高度就是-1+1=0} 层数: 树的高度最底下的为第1层(有的书定义为第0层),依次向上累加 树的深度: 完全二叉树是指这样的二叉树:

二叉树的三种遍历方式的循环和递归的实现方式

///////////////////头文件:BST.h//////////////////////// #ifndef BST_H #define BST_H #include "StdAfx.h" #include<iostream> #include<stack> template<typename DataType> class BST { public: class Node { public: Node(int data=0):m_dat

十八 二分搜索树的三种遍历方式

三种遍历方式: package com.lt.datastructure.BST; public class BST<E extends Comparable<E>> { private class Node{ public E e; Node left,right; public Node(E e) { this.e = e; this.left = left; this.right = right; } } private Node root; private int size

for 、foreach 、iterator 三种遍历方式的比较

习惯用法 for.foreach循环.iterator迭代器都是我们常用的一种遍历方式,你可以用它来遍历任何东西:包括数组.集合等 for 惯用法: List<String> list = new ArrayList<String>(); String[] arr = new String[]{"1,2,3,4"}; for(int i = 0;i < arr.length;i++){ System.out.println(arr[i]); } for(i

java中ArrayList集合的三种遍历方式

public class ListDemo { public static void main(String[] args) { ArrayList<String> mList = new ArrayList<>(); mList.add("郭靖"); mList.add("黄蓉"); mList.add("洪七公"); mList.add("周伯通"); // 第一种遍历方式:普通for循环 for

有关不同实现类的List的三种遍历方式的探讨

我们知道,List的类型有ArrayList和LinkedList两种,而曾经的Vector已经被废弃. 而作为最常用的操作之一,List的顺序遍历也有三种方式:借助角标的传统遍历.使用内置迭代器和显式迭代器. 下面,将首先给出两种种不同类型实现的实验结果,之后,将会通过分析JAVA中List的各种实现,来探讨造成实验结果的原因. 1.随机数据的生成 package temp; import java.io.*; import java.util.Random; public class Dat

完全二叉树的三种遍历方式

二叉树的遍历方法有多种,最常用的有中序遍历.先序遍历和后序遍历.毫无例外,这三种遍历方法都是基于递归/迭代的思想 为了更好的说明三种遍历,结合图片. 假设现在存在{1,3,5,7,9,2,4,6,8,10}的一个完全二叉树 中序遍历:遍历时先尝试访问当前结点的左子结点,如果左子结点不存在,则读取当前结点的数据,然后再访问当前结点的右子结点.对应的遍历结果是:6 7 8 3 10 9 1 2 5 4 先序遍历:遍历时先读取当前结点的数据,然后在访问当前结点左子结点.仅当左子结点不存在,则访问右子结