gpt4 book ai didi

java - 创建 HashMap 和 TreeMap 对象的不同语法

转载 作者:行者123 更新时间:2023-12-02 11:07:26 25 4
gpt4 key购买 nike

通常,当您创建对象时,您在前面提供相同的类型喜欢:

Scanner scanner = new Scanner(System.in);

但是声明 HashMap 对象和 TreeMap 遵循不同的语法,如下所示。

Map m1 = new HashMap();
SortedMap sm = new TreeMap();

原因是什么?我问我的教授。但他不知道答案。

最佳答案

but declaring a HashMap object and TreeMap follow a different syntax like this.

不必这样做。你可以写:

HashMap<String, Integer> map = new HashMap<String, Integer>();

...只是你通常不这样做。

同样,您可以写:

Object scanner = new Scanner(System.in);

基本上,涉及两种类型:

  • 您声明的变量的类型
  • 您正在调用其构造函数的类型

它们不必相同,但构造类型必须与变量类型赋值兼容。它必须是该类支持的父类(super class)或接口(interface)。仅将 Map (或 List 或其他)变量指定为接口(interface)类型的要点是,大多数代码应该只将其视为映射/列表/设置/无论如何。事实上,它恰好是一个 HashMap (或 ArrayList 等),在幕后是一个实现细节。

参见"programming to an interface"有关此的更多详细信息...但请注意,两种情况下的语法是相同的:

VariableType variableName = new ActualTypeBeingConstructed();

I asked my professor. But he did not know the answer.

这让我害怕......

关于java - 创建 HashMap 和 TreeMap 对象的不同语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11928744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com