使用 JDK中java.util.Collections 类,unmodifiable*** 方法赋值原集合。
当再修改集合时,会报错 java.lang.UnsupportedOperationException。从而确保自己定义的集合不被其他人修改。
public class TestCollectionUnmodify { static List<String> list = new ArrayList<String>(); static Set<String> set = new HashSet<String>(); static Map<String, String> map = new HashMap<String, String>(); static { list.add("1"); list.add("2"); list.add("3"); set.add("1"); set.add("2"); set.add("3"); map.put("1", "1"); map.put("2", "2"); map.put("3", "3"); } public static void main(String[] args) { list = Collections.unmodifiableList(list); set = Collections.unmodifiableSet(set); map = Collections.unmodifiableMap(map); listModify(); setModify(); mapModify(); } public static void listModify() { list.add("4"); } public static void setModify() { set.add("4"); } public static void mapModify() { map.put("3", "4"); } }
PS:guava工具类也可完成改功能