返回缺省值而不是空值的 Java Map 实现
我的代码中有一个,如果映射的方法返回空列表而不是null,我将避免潜在的空指针。在java API中是否有类似的东西?我应该延长吗?Map<String, List<String>>
#get()
HashMap
我的代码中有一个,如果映射的方法返回空列表而不是null,我将避免潜在的空指针。在java API中是否有类似的东西?我应该延长吗?Map<String, List<String>>
#get()
HashMap
多亏了方法,Java 8现在内置了Map::getOrDefault
:default
Map<Integer, String> map = ...
map.put(1, "1");
System.out.println(map.getOrDefault(1, "2")); // "1"
System.out.println(map.getOrDefault(2, "2")); // "2"
@Jon的答案是直接做你要求的事情的好方法。
但令我印象深刻的是,您可能试图实现的是“多地图”;即从键到值集合的映射。如果是这种情况,那么您还应该查看Guava或Apache共享资源集合中的多映射类。
看:
com.google.common.collect.Multimap
接口及其实现,或者org.apache.commons.collections.MultiMap
接口及其实现。org.apache.commons.collections4.MultiMap
接口及其实现(之前的 MultiMap 的新版本;在 v4 中引入)。