Map集合:即 接口Map<K,V>

map集合的两种取出方式:
    1.Set<k> keyset: 将map中所有的键存入到set集合(即将所有的key值存入到set中), 因为Set具备迭代器,可以进行迭代遍历。 所有可以迭代方式取出所有的链,再根据get方法。获取每一个键对应的值。

Map 集合的取出原理: 将map集合转成set集合。 再通过迭代器取出
    2. set<Map.Entry<k,v>>  entrySet: 将map集合中的映射关系(即键值对的方式存入到set中)存入到set集合中,而这个关系的数据类型就是:map.entry

public class Demo1_Map {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("01", "张三");
map.put("02", "李四");
map.put("03", "王二");
map.put("04", "马武");
//将Map集合中的映射关系取出。存放到set集合中.........................
Set<String> key = map.keySet();
//for遍历
System.out.println("for遍历得到数据");
for(String k:key){
System.out.println(k+map.get(k));
}
//..........................................
System.out.println("第一种方法得到数据:");
// 迭代器方法:
Iterator<String> it = key.iterator();
while(it.hasNext()){
String key2 = it.next();
String value = map.get(key2);
System.out.println(key2+value);
}
//...........................................................
System.out.println("第二种方法获取数据:");
//将Map集合中的映射键值对取出。存入到Set集合
Set<Map.Entry<String, String>> entrySet = map.entrySet();
Iterator<Map.Entry<String, String>> it2 = entrySet.iterator();
while(it2.hasNext()){
Map.Entry<String, String> me = it2.next();
String key2 = me.getKey();
String value2 = me.getValue();
System.out.println(key2+" "+value2);
} }
}

效果:

以方法一中while为例:

  while(it.hasNext()){
String key2 = it.next();
String value = map.get(key2);
System.out.println(key2+value);
//问题:当把最后一行的key2改变成it.next()时候就会出现问题,只出现两个数据??????
}

将上面的代码改成:

 while(it.hasNext()){
System.out.println(it.next()+map.get(it.next()));
}

会出现错误:即效果为:

原本是想着简便写的,结果出现错误, 应该是it.next()方法出现问题; 也就是while一次循环中执行了两次it.next()方法。导致结果出现错误。

以后再写代码中,要注意一些方法多次使用会不会影响所需要的效果

Map集合的两种遍历方式的更多相关文章

  1. Map集合的两种取出方式

    Map集合有两种取出方式, 1.keySet:将Map中的键存入Set集合,利用set的迭代器来处理所有的键 举例代码如下: import java.util.*; class Test { publ ...

  2. Map集合的几种遍历方式

    Map<String ,String> map=new HashMap<String,String>(); map.put("1","value1 ...

  3. Map集合的四种遍历方式

    很久以前写的代码,和上一个做比较吧!便于以后查看 import java.util.HashMap; import java.util.Iterator; import java.util.Map; ...

  4. Map集合的四种遍历方式(转载)

    import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class TestMap { pu ...

  5. Map集合的4种遍历方式

    import java.util.HashMap;import java.util.Iterator;import java.util.Map; public class TestMap {    p ...

  6. Map的两种遍历方式

    ********************************************************************************* ****************** ...

  7. HashMap的两种遍历方式

    HashMap的两种遍历方式 HashMap存储的是键值对:key-value . java将HashMap的键值对作为一个整体对象(java.util.Map.Entry)进行处理,这优化了Hash ...

  8. Java中List集合的三种遍历方式(全网最详)

    List集合在Java日常开发中是必不可少的,只要懂得运用各种各样的方法就可以大大提高我们开发的效率,适当活用各种方法才会使我们开发事半功倍. 我总结了三种List集合的遍历方式,下面一一来介绍. 首 ...

  9. HashMap两种遍历方式的深入研究

    转自:http://swiftlet.net/archives/1259 HashMap的遍历有两种方式,如下所示:第一种利用entrySet的方式:   1 2 3 4 5 6 7 Map map ...

随机推荐

  1. 有关ftp批量传送文件或文件夹

    以ftp 批量上传文件时 可以用 mput file1 file2 .. 但是这样没传送一个就会问是否传送下一个 ,那么可以使用prompt这个命令.这是个双向开关,执行一次是取消提示,在执行一次是打 ...

  2. leetcode@ [84/85] Largest Rectangle in Histogram & Maximal Rectangle

    https://leetcode.com/problems/largest-rectangle-in-histogram/ https://leetcode.com/problems/maximal- ...

  3. 【数论】Baby Step Giant Step

    被数论怒虐了一天 心力憔悴啊 感觉脑细胞已经快消耗殆尽了>_< 但是今天还是会了很多之前觉得特别神的东西 比如BSGS 之前听了两遍 好像都因为听得睡着了没听懂-.- 今天终于硬着头皮学会 ...

  4. [AHOI2006]文本编辑器 Splay tree区间操作

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1269 Description 这些日子,可可不和卡卡一起玩了,原来可可正废寝忘食的想做一个 ...

  5. Activity的lanuchmode

    假设: 假设栈有A-B-C-D,四个activity.其中D Activity在栈顶 standard: 此时跳转到D Activity,跳转后栈的情况是A-B-C-D-D singleTop: 此时 ...

  6. [Objective-c 基础 - 3.1] 内存管理

    A.内存存放.retain.release 1.栈内存:存放局部变量,运行超过变量作用域自后编译器自动回收 2.堆内存:存放对象(地址,对象实体) 3.对象的基本结构 (1)引用计数器(4字节):当计 ...

  7. React Native通信机制详解

    React Native是facebook刚开源的框架,可以用javascript直接开发原生APP,先不说这个框架后续是否能得到大众认可,单从源码来说,这个框架源码里有非常多的设计思想和实现方式值得 ...

  8. FreeModbus Slave 改进的eMbPoll()【worldsing 笔记】

    eMbPoll()的作用是FreeMod协议通信过程中不断查询事件对列有无完速数据桢,并进行地址和CRD验证,最后运行和回复主机. 为了减小代码尺寸对eMbPoll进行改进: 原版: 1:  2: e ...

  9. jquery-ui 之Sortable详解

    <div class="aaa"> <ul id="sortable"> <li id="test">I ...

  10. 【Stage3D学习笔记续】山寨Starling(六):动画实现和测试

    我发布了一个版本v0.2,该版本是未优化版本,且没有添加Touch事件体系,但是由于是最基础且未优化的,所以可以通过参考代码快速的了解实现原理. 接下来的一段笔记开始进行渲染优化,我会把所有的目光都集 ...