map有四种方式:

1.直接遍历 keySet

2.使用Iterator //注意next放回的对象是map.Entry<K,V>,而使用的iterator是通过entrySet返回的一个set得到的

3.直接遍历 entrySet

4.遍历values(); //这种不能得到key

代码事例:

  1. package test;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Iterator;
  5. import java.util.Map;
  6. import java.util.Set;
  7.  
  8. /**
  9. * Map的遍历
  10. *
  11. * @author lin
  12. *
  13. */
  14. public class MapTest {
  15.  
  16. public static void main(String[] args) {
  17.  
  18. HashMap<String, Integer> map = new HashMap<String, Integer>();
  19. map.put("a", 1);
  20. map.put("b", 2);
  21. map.put("c", 3);
  22.  
  23. /*
  24. * 用keySet()
  25. */
  26. Set<String> set = map.keySet();
  27. for(String key : set){
  28.  
  29. int value = (Integer) map.get(key);
  30. System.out.println("key:" + key + " value:"+value);
  31. }
  32.  
  33. /*
  34. * 用entrySet()
  35. * 注意:返回的是一个Set
  36. * 这个方法的Iterator.next()返回的才是Map.Entry<K,V> ,如果Set
  37. * 用这个方法的话,那么放回的不是Map.Entry<K,V>
  38. * 反正就是要主要Map与Set用这个方法遍历的不同
  39. */
  40.  
  41. Set<Map.Entry<String, Integer>> set2 = map.entrySet();
  42. Iterator it = set2.iterator();
  43.  
  44. while(it.hasNext()){
  45. Map.Entry<String, Integer> entry = (Map.Entry<String, Integer>)it.next();
  46. String key = entry.getKey();
  47. int value = entry.getValue();
  48.  
  49. System.out.println("key:" + key + " value:" + value);
  50. }
  51.  
  52. /*当map容量很大时,这个效率最高
  53. * 直接遍历entrySet()
  54. */
  55. for(Map.Entry<String, Integer> entry : map.entrySet()){
  56.  
  57. System.out.println("key:" + entry.getKey() + " value:" + entry.getValue());
  58. }
  59.  
  60. /*
  61. * 通过values遍历
  62. * 注意这种方法得不到key的
  63. */
  64. for(Integer value : map.values()){
  65. System.out.println("key:" + map.get(value) + " value:" + value);
  66. }
  67. }
  68.  
  69. }
  1. package test;
  2.  
  3. import java.util.HashSet;
  4. import java.util.Iterator;
  5. import java.util.Set;
  6.  
  7. public class SetTest {
  8.  
  9. public static void main(String[] args) {
  10.  
  11. Set<String> set = new HashSet<String>();
  12.  
  13. set.add("a");
  14. set.add("b");
  15. set.add("c");
  16.  
  17. Iterator it = set.iterator();
  18. while(it.hasNext()){
  19.  
  20. String key = (String)it.next();
  21. System.out.println("key:" + key);
  22. }
  23. }
  24.  
  25. }

map与set的遍历的更多相关文章

  1. Java中Map的三种遍历方法

    Map的三种遍历方法: 1. 使用keySet遍历,while循环: 2. 使用entrySet遍历,while循环: 3. 使用for循环遍历.   告诉您们一个小秘密: (下↓面是测试代码,最爱看 ...

  2. map的4种遍历方式

            System.out.println("key= "+ key + " and value= " + map.get(key));    }   ...

  3. java map的四种遍历

    四种遍历: public static void main(String[] args) { Map<String, String> map = new HashMap<String ...

  4. List<Map<String,String>>操作(遍历,比较)

    1.List<Map<String,String>>的遍历: Map<String,String> map = new HashMap<String, Str ...

  5. Map的三种遍历

    import java.util.*;/*** Map的三种遍历方式* @author Administrator**/public class m {public static void main( ...

  6. Map的四种遍历

    //Map的四种遍历方法 public static void main(String[] args) { Map<String, String> map = new HashMap< ...

  7. Java集合list,map,set区别及遍历

    1.1 List.Set.Map基本区别 1.List,Set都是继承Collection接口,Map不是. 2.List:LinkedList.ArrayList.Vector Set :HashS ...

  8. JavaScript中的Map、Set及其遍历

    Map Map是一组键值对的结构,具有极快的查找速度. Map的定义. //空map设值key-value var m = new Map(); m.set("XiaoMing", ...

  9. Map<String, String>循环遍历的方法

    Map<String, String>循环遍历的方法 Map<String, String>循环遍历的方法 Map<String, String>循环遍历的方法 下 ...

  10. Map 的四种遍历方式

    Map 的四种遍历方式 import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class ...

随机推荐

  1. java类总结

    1.java类与类之间存在六种关系:继承,实现,依赖,关联,聚合组成 2.一个类可以继承另外一个类,并在此基础上添加自己的特有的功能. 3.一个类的方法中操作另外一个类的对象,这种情况称为第一个类依赖 ...

  2. [ CodeVS冲杯之路 ] P1197

    不充钱,你怎么AC? 题目:http://codevs.cn/problem/1197/ 密钥的字母可以全转换为小写字母,然后一一映射,a→0,b→1,c→2,依此类推 对于密文只需将每一位减去对应密 ...

  3. GLib基础

    实用功能 GLib中包含了近二十种实用功能,从简单的字符处理到初学者很难理解的XML解析功能,这里介绍两种较简单的:随机数和计时. 下面代码演示如何产生1-100之间的随机整数和演示如何计算30000 ...

  4. SQL 表值函数

    表值函数返回的是一张表. 情况:把传入的字符串按指定分隔符转换成数组 理解:把字符串打散,逐个插入表,这个表就是需要的数据 Create Function [dbo].[Split] ( ), ) ) ...

  5. 视频运动motion vector获取。

    http://victor.csie.org/blog/archives/362------------------------------------------------------------ ...

  6. activity的android:name 设置问题

    <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com. ...

  7. SVN与TortoiseSVN实战:属性的奇技淫巧(一)

    硬广:<SVN与TortoiseSVN实战>系列已经写了六篇,本系列结合TortoiseSVN对SVN中容易被忽视的部分进行了详解,预计再用三.四篇来结束这个系列. 本篇详解一下SVN的属 ...

  8. 轻松入门React和Webpack

    最近在学习React.js,之前都是直接用最原生的方式去写React代码,发现组织起来特别麻烦,之前听人说用Webpack组织React组件得心应手,就花了点时间学习了一下,收获颇丰 <!-- ...

  9. css3为图片添加鼠标移入放大效果

    只需要为添加效果的图片定义一个伪类 img.zoom-img:hover { -webkit-transform: scale(1.15); -webkit-transition-timing-fun ...

  10. Android IOS WebRTC 音视频开发总结(二二)-- 多人视频架构模式

    本文主要介绍多人视频会议服务端架构方式,文章来自博客园RTC.Blacker,转载必须说明出处,欢迎关注个人微信公众号blacker,更多详见www.rtc.help 随着移动互联网的迅速发展,很多公 ...