美文网首页
Java Map的初始化

Java Map的初始化

作者: yikemi | 来源:发表于2021-12-14 19:56 被阅读0次

一、前言

static变量的初始化

类变量有点C语言的全局变量的味道,所以一般在单例或者真的只想维护一个全局变量的时候才会使用。

二、Java的Map初始化

介绍两种较为常用的初始化方式,

import java.util.HashMap;
import java.util.Map;

/**
 * 初始化Map static field两种常用方式
 *
 * @since 2021-12-14-3:57 PM
 */
class MapTest {
    /**
     * 该初始化方式的返回一个unmodifiable map
     */
    private static final Map<String, String> TEST_1 =
            Map.ofEntries(
                    Map.entry("1", "A"),
                    Map.entry("2", "B")
                    // Map.entry(null, null) // 运行时空指针异常,不支持存放null key&&value
    );

    private static final Map<String, String> TEST_2 = new HashMap<>() {
        {
            put("1", "A");
            put("2", "B");
        }
    };

    public static void main(String[] args) {
        // TEST_1.get(null); // 运行时空指针异常

        TEST_2.get(null); // 正常运行
    }
}

第一种方式需要jdk9才支持,避免出错其实还是推荐方式二,有很好的避免null调用的运行时异常。
方法二为一种匿名子类的方式,第一层括弧实际是定义了一个匿名内部类 (Anonymous Inner Class),第二层括弧实际上是一个实例初始化块 (instance initializer block),这个块在内部匿名类构造时被执行。
在Json序列化的时候,方法二会可能出现问题,因此使用static块初始化是一种较为稳妥的做法,

import java.util.HashMap;
import java.util.Map;
public class Test{
    private static final Map<Integer, String> myMap = new HashMap<Integer, String>();
    static {
        myMap.put(1, "one");
        myMap.put(2, "two");
    }

相关文章

  • Java Map的初始化

    一、前言 static变量的初始化 类变量有点C语言的全局变量的味道,所以一般在单例或者真的只想维护一个全局变量的...

  • Map

    初始化 map的使用 map的遍历 Map结合Slice map是引用类型数据

  • 【JAVA】Map构造+初始化

    1. 使用静态初始化 结果: key: 1, value: lisakey: 2, value: John 2. ...

  • map

    map 初始化 map map0 = {{ 2015, "Jim" },{ 2016, "Tom" },{ 20...

  • java day 14

    Map java Map及Map.Entry详解Map是java中的接口,Map.Entry是Map的一个内部接口...

  • golang map的坑

    当结构体的某个成员是map类型, 结构体初始化后map需要单独初始化,否则对map的操作会“panic: assi...

  • JavaScript教程day08-Map和Set

    Map和Set Map Map是一组键值对的结构,具有极快的查找速度 初始化Map需要一个二维数组,或者直接初始化...

  • Map 遍历方法

    初始化Map 先初始化一个map: 遍历map 方法一:keySet与values(需要分别获取所有的key和va...

  • Python_基础_数据类型_3

    dict 类似于 java 中的 map ,数据内容为(key-value) 增 除了初始化外,我们还可以使用 x...

  • Map 和 Set

    Map Map是一组键值对的结构,具有极快的查找速度。 初始化Map需要一个二维数组,或者直接初始化一个空Map ...

网友评论

      本文标题:Java Map的初始化

      本文链接:https://www.haomeiwen.com/subject/cyjyfrtx.html