返回缺省值而不是空值的 Java Map 实现

2022-09-01 04:48:54

我的代码中有一个,如果映射的方法返回空列表而不是null,我将避免潜在的空指针。在java API中是否有类似的东西?我应该延长吗?Map<String, List<String>>#get()HashMap


答案 1

多亏了方法,Java 8现在内置了Map::getOrDefaultdefault

Map<Integer, String> map = ...
map.put(1, "1");
System.out.println(map.getOrDefault(1, "2")); // "1"
System.out.println(map.getOrDefault(2, "2")); // "2"

答案 2

@Jon的答案是直接做你要求的事情的好方法。

但令我印象深刻的是,您可能试图实现的是“多地图”;即从键到值集合的映射。如果是这种情况,那么您还应该查看Guava或Apache共享资源集合中的多映射类。

看: