关闭

Java遍历Map

标签: javamap
236人阅读 评论(0) 收藏 举报
分类:
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();
	}
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:150002次
    • 积分:1365
    • 等级:
    • 排名:千里之外
    • 原创:35篇
    • 转载:2篇
    • 译文:0篇
    • 评论:12条
    文章分类
    最新评论