【问题标题】:What is the difference between Map myMap = new HashMap and HashMap myMap = new HashMap? [duplicate]Map myMap = new HashMap 和 HashMap myMap = new HashMap 有什么区别? [复制]
【发布时间】:2019-12-03 05:23:40
【问题描述】:

Java 新手,当我想初始化一个 HashMap 时。我可以找到这两个解决方案:

Map<String, String> myMap = HashMap<String, String>;
HashMap<String, String> myMap = HashMap<String, String>;

我知道 Map 是一个接口,而 HashMap 实现了它。但是为什么我们这里有两个?他们每个人的好处是什么?

【问题讨论】:

  • @MadPhysicist 我没有更改任何内容,只是修复了格式。泛型已经存在,但在常规文本块中不可见。 (让它们可见是我编辑的主要目的)

标签: java interface


【解决方案1】:

对象之间没有区别;在这两种情况下你都有一个 HashMap 。您对对象的接口有所不同。在第一种情况下,接口是 HashMap,而在第二种情况下是 Map。但底层对象是一样的。

使用 Map 的优势在于,您可以将底层对象更改为不同类型的地图,而不会违反使用它的任何代码的合同。如果声明为 HashMap,如果要更改底层实现,则必须更改合约。

发件人:https://stackoverflow.com/users/157247/t-j-crowder 在:What is the difference between the HashMap and Map objects in Java?

【讨论】:

    猜你喜欢
    • 2011-04-07
    • 1970-01-01
    • 2013-07-28
    • 2015-07-25
    • 2011-01-27
    • 2011-07-05
    • 2013-10-13
    • 2012-12-29
    • 2017-02-12
    相关资源
    最近更新 更多