您的位置:首页 > 编程语言 > Java开发

Java遍历Map

2015-11-19 14:41 381 查看
Java遍历Map的四种方法及对比
package cn.sf.util;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class TestMap {

/**
* 方法一 在for-each循环中使用entries来遍历
* 这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用
*/
public void testMap1(){
Map<String, String> map = new HashMap<String, String>();
map.put("map1", "1");
map.put("map2", "2");
map.put("map3", "3");

Set<String> keys = map.keySet();
for (String key : keys) {
System.out.println(key+"---"+map.get(key));
}
}
/**
* 方法一 :如果只需要map中的键或者值,你可以通过keySet或values来实现遍历
* 比entrySet性能
*/
public void testMap2(){
Map<String, String> map = new HashMap<String, String>();
map.put("map1", "1");
map.put("map2", "2");
map.put("map3", "3");

Set<String> keys = map.keySet();
for (String key : keys) {
System.out.println("key:"+map.get(key));
}
for (String value :  map.values()) {
System.out.println("value:"+value);
}
}
/**
* 方法三:使用Iterators
*/
public void testMap3(){
Map<String, String> map = new HashMap<String, String>();
map.put("map1", "1");
map.put("map2", "2");
map.put("map3", "3");
Iterator<Entry<String, String>> iterators = map.entrySet().iterator();
while(iterators.hasNext()){
Entry<String, String> entry = iterators.next();
System.out.println(entry.getKey()+"---"+entry.getValue());
}
}

/**
* 方法四 :通过键找值遍历(效率低)
*/
public void testMap4(){
Map<String, String> map = new HashMap<String, String>();
map.put("map1", "1");
map.put("map2", "2");
map.put("map3", "3");

for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey()+"--"+entry.getValue());
}
}
public static void main(String[] args) {
TestMap testMap = new TestMap();
testMap.testMap1();
System.out.println();
testMap.testMap2();
System.out.println();
testMap.testMap3();
System.out.println();
testMap.testMap4();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: