`

Java遍历Map

    博客分类:
  • Java
阅读更多

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();
	}
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics