当前位置: 首页 > 知识库问答 >
问题:

MapmyMap=new HashMap和HashMapmyMap=new HashMap之间有什么区别?[副本]

钦良弼
2023-03-14

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

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

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

共有1个答案

夏侯腾
2023-03-14

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

使用Map的好处是,您可以将底层对象更改为另一种Map而不会破坏与使用它的任何代码的契约。如果将其声明为HashMap,那么如果要更改底层实现,则必须更改契约。

发件人:https://stackoverflow.com/users/157247/t-j-crowder In:Java中的HashMap和Map对象有什么区别?

 类似资料:
  • matplotlib之间的区别是什么。pyplot和matplotlib。派拉布? 哪一个是首选的什么用途? 我有点困惑,因为它似乎是独立的,我可以做同样的事情。我错过了什么?

  • 问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型

  • 那么,和到底有什么区别呢?什么时候我们应该偏爱一个而不是另一个?

  • 问题内容: 今天,我按照一些说明在Linux中安装软件。有一个脚本需要首先运行。它设置一些环境变量。 指令告诉我要执行,但是我执行错误了。因此未设置环境。最后,我注意到了这一点并继续进行。 我想知道这两种调用脚本方法的区别。我对Linux完全陌生,所以请尽可能详细。 问题答案: 运行脚本,将启动一个新的运行脚本的外壳。新的外壳程序不会影响启动脚本的父外壳程序。 是的简写形式,它将在当前shell中

  • 问题内容: 我刚开始使用Spring。我遇到了很多教程。我看到使用更多的例子比。我查看了Spring文档,但无法弄清楚使用其中一个的好处。有人可以提供一些解释吗? 问题答案: 是的便捷子类。 JavaDoc描述了一些添加的属性,这些属性在某些情况下可能有用: UrlBasedViewResolver的便利子类,它支持InternalResourceView(即Servlet和JSP)以及诸如Jst

  • 问题内容: 我刚刚看到了包含标签的CSS代码。我看着MDN看看是什么,但我真的不明白。 有人可以解释它是如何工作的吗? 它会在我们通过CSS选择之前创建DOM元素吗? 问题答案: 根据这些文档,它们是等效的: 唯一的区别是CSS3中使用了双冒号,而单冒号是旧版本。 推理: CSS 3中引入了:: before表示法,以便在伪类和伪元素之间建立区别。浏览器还接受:在CSS 2中引入的表示法。