Map(java)遍历及其遍历时移除键值对操作

Map(java)遍历及其遍历时移除键值对操作

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

import org.junit.Test;

/**
 * @description: 遍历map
 * 		此处以HashMap为例,他是线程不安全的。
 * @author viakiba
 * @date 2017年8月29日
 */
public class App {
	
	/**
	 * @description: 
	 * 		方式1:使用keyset拿到key的set集合,通过key取出value
	 * @author: viakiba
	 * @throws Exception
	 */
	@Test
	public void test1() throws Exception {
		Map<String, String> map = new HashMap<String,String>();
		map.put("k1", "v1");
		map.put("k2", "v2");
		map.put("k3", "v3");
		map.put("k4", "v4");
		
		Set<String> keys = map.keySet();
		for(String key:keys){
			String value = map.get(key);
			System.out.println(value+":"+key);
		}
	}
	
	/**
	 * @description: 
	 * 		entrySet
	 * @author: viakiba
	 * @throws Exception
	 */
	@Test
	public void test2() throws Exception {
		Map<String, String> map = new HashMap<String,String>();
		map.put("k1", "v1");
		map.put("k2", "v2");
		map.put("k3", "v3");
		map.put("k4", "v4");
		
		Set<Entry<String, String>> entrySet = map.entrySet();
		for(Map.Entry<String, String> entry : entrySet){
			System.out.println(entry.getKey()+":"+entry.getValue());
		}
		System.out.println("======================================");
		Iterator<Entry<String, String>> iterator = entrySet.iterator();
		while(iterator.hasNext()){
			Entry<String, String> next = iterator.next();
			System.out.println(next.getKey()+":"+next.getValue());
		}
	}
	
	/**
	 * @description:map
	 * 遍历 
	 * @author: viakiba
	 * @throws Exception
	 */
	@Test
	public void test3() throws Exception {
		Map<String, String> map = new HashMap<String,String>();
		map.put("k1", "v1");
		map.put("k2", "v2");
		map.put("k3", "v3");
		map.put("k4", "v4");
		
		Collection<String> values = map.values();
		for(String value : values){
			System.out.println(value);
		}
		System.out.println("================================");
		Iterator<String> iterator = map.values().iterator();
		while(iterator.hasNext()){
			String next = iterator.next();
			iterator.remove();
			System.out.println(next);
		}
	}
	
	/**
	 * @description: 遍历中,移除map中的键值对
	 * @author: viakiba
	 * @throws Exception
	 */
	@Test
	public void test4() throws Exception {
		Map<String, String> map = new HashMap<String,String>();
		map.put("k1", "v1");
		map.put("k2", "v2");
		map.put("k3", "v3");
		map.put("k4", "v4");
		
		Collection<String> values = map.values();
		for(String value : values){
			System.out.println(value);
		}
		System.out.println("================================");
		Iterator<String> iterator = map.values().iterator();
		while(iterator.hasNext()){
			String next = iterator.next();
			iterator.remove();
			System.out.println(next);
		}
	}
	
}

 

转载于:https://my.oschina.net/viakiba/blog/1525588