java - 如何对 Map 的 Map 使用双括号初始化
问题描述
我确实知道双括号初始化有其隐藏的成本,仍然有一种可能的方法来初始化Map<String,Map<String,String>>()
.
我尝试了什么:
Map<String, Map<String, String>> defaultSourceCode = new HashMap<String, Map<String, String>>(){
{"a",new HashMap<String, String>(){{"c","d"}}}
};
我知道这是一种不好的做法,但至于实验我正在尝试。
参考和动机: Arrays.asList 也适用于地图?
解决方案
您可以使用Map.of()
from java9 返回不可变映射:
Map<String, Map<String, String>> map = Map.of("a", Map.of("c", "d"));
Map<String, Map<String, String>> map1 = Map.ofEntries(
Map.entry("a", Map.of("c", "d"))
);
推荐阅读
- spring - Spring Boot OAuth2 和 Oracle IDCS:JWK 设置 URI 响应 401 UNAUTHORIZED,需要令牌
- r - 从列表中获取值,这些值是 R 函数中的参数
- typescript - 在 Typescript 中防止不适当的导入和执行项目层次结构
- javascript - 电子JS中的capturePage
- python - 用 Pandas 中的数据框值标记散点图的标题
- python - 从 Json Python 获取特定的字段值
- git - 为什么 .gitignore 中的目录仍然被“git status”跟踪?
- memory-management - 向量函数的分配是原子的吗?(无法理解错误)
- python - 如何每行仅合并一次数据框
- kotlin - 将 javascript 对象数组传递给 kotlin 函数