Map日常--Map的复制,Map不可修改UnsupportedOperationException


本次练习涉及到:

  1. 初始化一个static 的常量Map
  2. 设置Map为不可修改
  3. UnsupportedOperationException 异常
  4. Map的复制

package Collection;

import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;

public class CreateMap {

	private static Map map;
	static {
//		按照存入顺序的Map
		map = new LinkedHashMap();
		map.put("key1", "value1");
		map.put("key3", "value3");
		map.put("key2", "value2");
	}
	
	public static void main(String[] args) {
		CreateMap cm = new CreateMap();
		cm.map.put("test", "test");		
		// java中提供了很多方法都可以实现对一个Map的复制,但是那些方法不见得会时时同步。
		// 简单说,就是一个Map发生的变化,而复制的那个依然保持原样。下面是一个比较高效的实现方法
		Map copiedMap = Collections.synchronizedMap(map);		
		cm.setUnmodifiable();
		copiedMap.put("test2", "test2");//不会报错
		
		cm.map.put("test2", "test2");//报错
	}
	
	public void setUnmodifiable(){
//		进制修改,修改会抛出UnsupportedOperationException异常来禁止修改。
		this.map = Collections.unmodifiableMap(map);
	}
}


你可能感兴趣的:(数据结构,java)