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. Petshop学习第三天

    ASP.NET缓存 ASP.NET充分利用缓存机制,通过某种方法,将系统需要的数据对象.Web页面存储在内存中,使得Web站点需要这些数据时,不经过繁琐的数据库连接.查询和复杂的逻辑运算,就可以触手可 ...

  2. Bzoj-2820 YY的GCD Mobius反演,分块

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2820 题意:多次询问,求1<=x<=N, 1<=y<=M且gcd( ...

  3. python 使用__future__

    Python的每个新版本都会增加一些新的功能,或者对原来的功能作一些改动.有些改动是不兼容旧版本的,也就是在当前版本运行正常的代码,到下一个版本运行就可能不正常了. 从Python 2.7到Pytho ...

  4. BNUOJ 26579 Andrew the Ant

    LINK:Andrew the Ant 题意:给一根长度为L的木头,上面有A只蚂蚁[每只蚂蚁给出了初始行走的方向,向左或向右].当两只蚂蚁相碰时,两只蚂蚁就朝相反的方向行走~╮(╯▽╰)╭问的是:最后 ...

  5. iOS 开发查看应用的沙盒文件

    在iOS开发中,常常需要将一些信息保存到本地,比如说用户的一些搜索历史等.那么,如何查看所保存的文件呢? 这里介绍两种途径来查看应用的沙盒文件. 方法一:通过Xcode来查看,步骤如下: (1): X ...

  6. oracle下的OVER(PARTITION BY)函数介绍

    转自:http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html OVER(PARTITION BY)函数介绍 开窗函数          ...

  7. OC/Swift第三方添加出错解决方法

    (未经同意,不得转载!) ------------------------华丽分割线-----------------------

  8. c#后台修改前台DOM的css属性

    <div id = 'div1' runat="server">haha</div> ----------- 后台代码中这样调用 div1.Style[&q ...

  9. xcode 4 制作静态库详解

    合并.a文件,制作通用静态库 这二个库一个是用于真机运行的一个是用于模拟器运行的.其实我们可以利用lipo将这二个文件打包成一个通用的a文件.命令如下: 将/Users/user/Library/De ...

  10. Flex Metadata tags 元数据标签

    1.[Alternative] [可替换] 标明此类可以被参数中的类替换,版本号说明发生替换的版本. [Alternative]和[Deprecated] 不同.如果是[不建议使用]的类,以后的版本可 ...