map与set的遍历
map有四种方式:
1.直接遍历 keySet
2.使用Iterator //注意next放回的对象是map.Entry<K,V>,而使用的iterator是通过entrySet返回的一个set得到的
3.直接遍历 entrySet
4.遍历values(); //这种不能得到key
代码事例:
package test; import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set; /**
* Map的遍历
*
* @author lin
*
*/
public class MapTest { public static void main(String[] args) { HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3); /*
* 用keySet()
*/
Set<String> set = map.keySet();
for(String key : set){ int value = (Integer) map.get(key);
System.out.println("key:" + key + " value:"+value);
} /*
* 用entrySet()
* 注意:返回的是一个Set
* 这个方法的Iterator.next()返回的才是Map.Entry<K,V> ,如果Set
* 用这个方法的话,那么放回的不是Map.Entry<K,V>
* 反正就是要主要Map与Set用这个方法遍历的不同
*/ Set<Map.Entry<String, Integer>> set2 = map.entrySet();
Iterator it = set2.iterator(); while(it.hasNext()){
Map.Entry<String, Integer> entry = (Map.Entry<String, Integer>)it.next();
String key = entry.getKey();
int value = entry.getValue(); System.out.println("key:" + key + " value:" + value);
} /*当map容量很大时,这个效率最高
* 直接遍历entrySet()
*/
for(Map.Entry<String, Integer> entry : map.entrySet()){ System.out.println("key:" + entry.getKey() + " value:" + entry.getValue());
} /*
* 通过values遍历
* 注意这种方法得不到key的
*/
for(Integer value : map.values()){
System.out.println("key:" + map.get(value) + " value:" + value);
}
} }
package test; import java.util.HashSet;
import java.util.Iterator;
import java.util.Set; public class SetTest { public static void main(String[] args) { Set<String> set = new HashSet<String>(); set.add("a");
set.add("b");
set.add("c"); Iterator it = set.iterator();
while(it.hasNext()){ String key = (String)it.next();
System.out.println("key:" + key);
}
} }
map与set的遍历的更多相关文章
- Java中Map的三种遍历方法
Map的三种遍历方法: 1. 使用keySet遍历,while循环: 2. 使用entrySet遍历,while循环: 3. 使用for循环遍历. 告诉您们一个小秘密: (下↓面是测试代码,最爱看 ...
- map的4种遍历方式
System.out.println("key= "+ key + " and value= " + map.get(key)); } ...
- java map的四种遍历
四种遍历: public static void main(String[] args) { Map<String, String> map = new HashMap<String ...
- List<Map<String,String>>操作(遍历,比较)
1.List<Map<String,String>>的遍历: Map<String,String> map = new HashMap<String, Str ...
- Map的三种遍历
import java.util.*;/*** Map的三种遍历方式* @author Administrator**/public class m {public static void main( ...
- Map的四种遍历
//Map的四种遍历方法 public static void main(String[] args) { Map<String, String> map = new HashMap< ...
- Java集合list,map,set区别及遍历
1.1 List.Set.Map基本区别 1.List,Set都是继承Collection接口,Map不是. 2.List:LinkedList.ArrayList.Vector Set :HashS ...
- JavaScript中的Map、Set及其遍历
Map Map是一组键值对的结构,具有极快的查找速度. Map的定义. //空map设值key-value var m = new Map(); m.set("XiaoMing", ...
- Map<String, String>循环遍历的方法
Map<String, String>循环遍历的方法 Map<String, String>循环遍历的方法 Map<String, String>循环遍历的方法 下 ...
- Map 的四种遍历方式
Map 的四种遍历方式 import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class ...
随机推荐
- using inno setup uninstall default icon
If you set SetupIconFile then the Uninstall Exe File (e.g. unins000.exe) will have exactly same icon ...
- nyoj 103 A + B problem II
点击打开链接 A+B Problem II 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 I have a very simple problem for you. G ...
- cocos2d-x 游戏暂停界面,监听home键,返回键,Menu键 解决方案
游戏暂停界面: cocos2d-x中游戏暂停界面提供的思路是用pushScene()和popScne(),即推进和弹出场景,当游戏暂停时,推进(pushScene())暂停场景,之前运行的场景将会自动 ...
- ibatis配置多表关联(一对一、一对多、多对多)
iBatis的多表关联. ibatis的表关联,和数据库语句无关,是在程序中,把若干语句的结果关联到一起.这种关联形式,虽然在大数据量时是很奢侈的行为,但是看起来很干净,用起来也很方便. 这里用表lo ...
- jsp页面List迭代
1.行迭代 <tbody> <c:choose> <c:when test="${not empty result}"> &l ...
- 《Head First 设计模式》ch.2 观察者(Observer)模式
观察者模式 定义了对象之间一对多以来,这样一来,当一个对象改变状态时,它所有的依赖者都会收到通知并自动更新 设计原则-松耦合 松耦合将对象之间的互相依赖降到了最低——只要他们之间的接口仍被遵守 观察者 ...
- 《Code Complete》ch.21 协同构建
WHAT? 所有的协同构建技术都试图通过这样那样的途径,将展示工作的过程正式化,以便将错误暴露出来 WHY? 提高缺陷检出率,从而缩短开发周期,降低开发成本 发现不明显的错误信息,如不恰当的注释.硬编 ...
- How I came to find Linux
http://ianmurdock.com/post/how-i-came-to-find-linux/ lan murdock August 17, 2015 I saw my first Sun ...
- VS error retrieving information from user datastore
搭建好VS2005+PB6.0的开发环境后,新建MFC智能设备应用程序工程出错,错误信息如下: error retrieving information from user datastore 很奇怪 ...
- opecv轮廓匹配,可以用于去噪
一个跟轮廓相关的最常用到的功能是匹配两个轮廓.如果有两个轮廓,如何比较它们;或者如何比较一个轮廓和另一个抽象模板. 矩 比较两个轮廓最简洁的方式是比较他们的轮廓矩.这里先简短介绍一个矩的含义.简单的说 ...