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 ...
随机推荐
- SQL Developer不能删除和复制及部分键失效问题
打开SQL Developer工作表进行SQL代码的编写的时候,发现我不能使用回车换行键,然后陆续发现好多按键在SQL Developer中都不能正常使用,如:上下左右键只有上和右可以使用,不能使用D ...
- Android--创建进度框ProgressDialog
1.布局文件progress_dialog_activity.xml <?xml version="1.0" encoding="utf-8"?> ...
- BPMN
1.私有业务流程: 特定行业规则制度比如惠普生产线流程-针对业务人员 2.公有业务流程: 技术实现-针对流程开发人员 http://www.blogjava.net/RongHao/archive/2 ...
- 动手学servlet(一) 第一个servlet程序
1.文件>新建>动态WEB项目 "javaeedemo">在Java Resource的src下新建包“servletdemo”,包下新建一个类“MyServet ...
- 编写javascript、Jquery的String.format();
在javascript.Jquery里面好像是没有String.format();这个函数的,所以我们在拼接字符串的时候就特别的辛苦,生怕又打错,而且又乱,所以就自己去写一个函数来代替. String ...
- 如何用CSS进行开发
翻译自:How to Develop with CSS 很多web开发人员都知道CSS,但是他们很可能认为使用CSS的应用代码就是这样的: <p> <span style=" ...
- Robotlegs2 学习笔记 -- SwiftSuspenders 2.x (1)
Swiftsuspenders2 是一个基于元数据(metadata)的IOC(控制反转,inversion of control)的AS3的解决方案.反转控制又被称依赖注射(Dependency I ...
- 图的最短路算法 Bellman-Ford
BF求图的最短路径的时间复杂度是O(MN),这样的时间复杂度并不比迪杰斯特拉算法好,但是BF算法支持图中存在负权的情况,但图中不能存在负圈,因为如果存在负圈,最短路是不存在的,因此BF算法的另一个重要 ...
- Android ROM 备书
1. Android ROM 目录接口 我们经常说的刷ROM是刷系统的意思,但是ROM的原意并不是这样,ROM的全称是read only memory只读储存器,正因为它是“只读”的,而且系统文件通常 ...
- typedef 与define 的区别
typedef和#define的用法与区别 typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译 ...