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

新手上路,请多包涵

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

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

阅读 597
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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题