集合类创建并同时初始化与创建不可修改的集合

在实际工作中会用到一些固定内容的集合作为常量,在创建的时候便赋值进去。
这样的需求第一想到的思路是写个一个匿名内部类,然后加一个代码块,在创建的时候执行代码块的内容。
具体代码如下:

package com.example.demo.main;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

public class Demo {
    //map
    private static final Map<String,String> STRING_STRING_MAP=new HashMap<String, String>(){{
        put("name","kexuexiong");
        put("age","27");
    }};
    //list
    private static final List<String> STRING_LIST=new LinkedList<String>(){{
            add("xiong");
            add("kexue");
    }};
}

还有一个安全的需求,将以上的集合改不可以进行添加删除操作,以防内容被修改。具体代码如下:

  //map
    private static final Map<String,String> STRING_STRING_MAP=Collections.unmodifiableMap(new HashMap<String, String>(){{
        put("name","kexuexiong");
        put("age","27");
    }});
    //list
    private static final List<String> STRING_LIST= Collections.unmodifiableList(new LinkedList<String>(){{
            add("xiong");
            add("kexue");
    }});

添加则报异常:
在这里插入图片描述

原创文章 34 获赞 20 访问量 1108

猜你喜欢

转载自blog.csdn.net/qq_22744093/article/details/105821924