Java只读集合实例

来源:互联网 发布:banner淘宝设计素材 编辑:程序博客网 时间:2024/06/11 02:45

由于业务逻辑需要创建只读的Map和List只能在初始化的时候进行赋值,除此之外只能读取不能修改或者添加数据,如果执行添加和修改操作则抛出异常,在网上找到如下代码片段可满足需求。

import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set;public class Main {    public static void main(String[] argv)            throws Exception {        List stuff = Arrays.asList(new String[] { "a", "b" });//stuff只读        try {            stuff.add("C");        } catch (Exception e) {            System.out.println(e.getClass().getName());        }        List list = new ArrayList(stuff);        list = Collections.unmodifiableList(list);//list只读        try {            list.set(0, "d");        }        catch (UnsupportedOperationException e) {            System.out.println(e.getClass().getName());        }        Set set = new HashSet(stuff);        set = Collections.unmodifiableSet(set);        try {            set.add("e");        } catch (Exception e) {            System.out.println(e.getClass().getName());        }        Map map = new HashMap();        map = Collections.unmodifiableMap(map);        try {            map.put("key","F");        } catch (Exception e) {            System.out.println(e.getClass().getName());        }        System.out.println("集合只读");    }}
0 0
原创粉丝点击