【问题标题】:Creating hashMap in java [duplicate]在java中创建hashMap [重复]
【发布时间】:2018-09-06 16:56:12
【问题描述】:

我对 Java 很陌生。我正在尝试创建一个 hashMap 并从另一个类调用 hashMap 类。我在下面有以下代码。我不断收到错误

package domain;

import java.util.HashMap;
import java.util.Map;

public class AumentumDocTypeMap {
  private HashMap<String, String> DocTypeMap = new HashMap<String, String>();
  DocTypeMap.put("7000690", "691");

  public HashMap<String, String> getTypeMap() {
       return DocTypeMap;
  }
}

我在 DocTypeMap.put("7000690", "691"); 上不断收到错误消息在令牌上说语法错误,删除令牌

【问题讨论】:

  • 注意,约定是变量名以小写字母开头,所以docTypeMap
  • 你不能在课堂上put。假设你想在创建AumentumDocTypeMap 的实例时执行它,你需要将它放在构造函数或初始化块中。
  • 在这个介绍性案例中不会真正将其称为重复项,因为您必须知道错误才能通过谷歌搜索该问题。

标签: java


【解决方案1】:

您需要在方法中移动 put 调用,而不是在类主体中。

添加一个构造函数(在创建对象时调用)以正确初始化类。

package domain;

import java.util.HashMap;
import java.util.Map;

public class AumentumDocTypeMap {
  private Map<String, String> docTypeMap;

  public AumentumDocTypeMap() {
      docTypeMap = new HashMap<String, String>();
      docTypeMap.put("7000690", "691");
  }

  public HashMap<String, String> getTypeMap() {
       return docTypeMap;
  }
}

此外,变量名称中的小写首字母是标准的:)。虽然首字母大写实际上不会破坏任何内容。

还请注意,我将哈希映射创建移到了构造函数中。一般来说,你应该避免在你声明它们的地方初始化对象,而是在构造函数(或静态初始化块 - 你可以用谷歌搜索)来做。

同样 - 正如@Maxim 在 cmets 中指出的那样,您应该将映射变量的类型设为 Map&lt;String, String&gt;,因为它允许您将实现从哈希映射更改为链接哈希映射或树地图。

【讨论】:

  • 觉得用Map&lt;String, String&gt;定义docTypeMap字段比较好
  • 答案的开头不太清楚。它对put the "put" within a method call 说,但随后它被放置在构造函数中(这是 not 方法)。
  • 两方面都很好:)。已修改。
【解决方案2】:

您需要在任何方法中输入值。如果您最初想要该值,则将其放入构造函数中:

public class AumentumDocTypeMap {
    private HashMap<String, String> DocTypeMap = new HashMap<String, String>();

    // Constructor
    public AumentumDocTypeMap(){
        DocTypeMap.put("7000690","691");
    }

    public HashMap<String, String> getTypeMap() {
        return DocTypeMap;
    }
}

【讨论】:

    猜你喜欢
    • 2017-02-12
    • 1970-01-01
    • 2011-11-09
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 2022-12-06
    • 2020-04-01
    • 1970-01-01
    相关资源
    最近更新 更多