HashMap 为未找到的键返回默认值?

新手上路,请多包涵

是否有可能让 HashMap 返回集合中未找到的所有键的默认值?

原文由 Larry 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 673
2 个回答

[更新]

正如其他答案和评论者所指出的,从 Java 8 开始,您可以简单地调用 Map#getOrDefault(...)

[原来的]

没有 Map 实现可以完全做到这一点,但通过扩展 HashMap 来实现您自己的将是微不足道的:

 public class DefaultHashMap<K,V> extends HashMap<K,V> {
  protected V defaultValue;
  public DefaultHashMap(V defaultValue) {
    this.defaultValue = defaultValue;
  }
  @Override
  public V get(Object k) {
    return containsKey(k) ? super.get(k) : defaultValue;
  }
}

原文由 maerics 发布,翻译遵循 CC BY-SA 3.0 许可协议

在 Java 8 中,使用 Map.getOrDefault 。它接受键,如果找不到匹配的键,则返回值。

原文由 Spycho 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题