中文资讯 掘金 AI Mon, 19 Oct 2026 正文 ok 147 words

JDK 26 中的 Map.ofLazy

英文标题:JDK26中的Map.ofLazy

Java 26 引入了全新的预览 API —— Map.ofLazy,用于创建具备惰性初始化、不可变和线程安全特性的 Map 集合。其核心机制在于预先定义键集合,而具体的值仅在首次被访问时才通过映射函数计算得出,能有效推迟计算开销并降低内存占用。同时,由于该方法构建的 Map 是不可变对象,任何写操作都会触发异常。目前该特性处于预览阶段,开发者在编译与运行时需开启 --enable-preview 参数。
打开原文相关 2 · 机会 2
media3.2 KB media589 B media10.7 KB media50.5 KB media3.9 KB

中文

前言

Map.ofLazy 是 Java 26 引入的一个预览 API,用于创建惰性初始化、不可变、线程安全 的 Map。它的核心特点是:键在创建时就需要提供,但值只会在第一次被访问时才通过函数计算出来 ,从而延迟开销、节省内存。

Map.ofLazy使用

Map.ofLazy使用

java import java.util.Map; import java.util.Set;

public class MapLazyDemo {

static void main() {
    Map<String, String> map = Map.ofLazy(Set.of("alice", "bob", "charlie"), name -> "Hello, " + name);
    System.out.println(map);
}

}

输出结果为

image.png

ofLazy()注意

java import java.util.Map; import java.util.Set;

public class MapLazyDemo {

static void main() {
    Map<String, String> map = Map.ofLazy(Set.of("alice", "bob", "charlie"), name -> "Hello, " + name);
    map.put("alice", "Hello, alice");
    System.out.println(map);
}

}

输出结果为

image.png

总结

该特性目前仍处于 预览阶段 (JDK 26/27),编译和运行需加 --enable-preview。

English / 原文

前言

Map.ofLazy 是 Java 26 引入的一个预览 API,用于创建惰性初始化、不可变、线程安全 的 Map。它的核心特点是:键在创建时就需要提供,但值只会在第一次被访问时才通过函数计算出来 ,从而延迟开销、节省内存

Map.ofLazy使用

Map.ofLazy使用

import java.util.Map;
import java.util.Set;

public class MapLazyDemo {

    static void main() {
        Map<String, String> map = Map.ofLazy(Set.of("alice", "bob", "charlie"), name -> "Hello, " + name);
        System.out.println(map);
    }
}

输出结果为

image.png

ofLazy()注意

import java.util.Map;
import java.util.Set;

public class MapLazyDemo {

    static void main() {
        Map<String, String> map = Map.ofLazy(Set.of("alice", "bob", "charlie"), name -> "Hello, " + name);
        map.put("alice", "Hello, alice");
        System.out.println(map);
    }
}

输出结果为

image.png

总结

该特性目前仍处于 预览阶段 (JDK 26/27),编译和运行需加 --enable-preview