Java HashMap 和 public static void main(String args[])

Java HashMap and public static void main(String args[])

我正在做一个必须使用 HashMap 的项目。

我是 java 的新手,所以我认为您必须在我想使用 HashMap 的每个 class 中包含它,或者应该将它包含在每个 class 无论如何?

public static void main(String args[])

这是全部class。我在没有主要方法的情况下尝试过,但我只是得到错误。

import java.util.HashMap;

public class Product
{
     public static void main(String args[]) {

     HashMap<String, int> product = new HashMap<String, int>();

     product.put("product1", 1);
     product.put("product2", 2);
   }

}

如果我没有 main 方法,它就会出现错误...

product.put("prodcut1", 1);

您只需要在程序的驱动程序中使用 main,而不是每个 class。在编写了需要 HashMap 的 code/classes 之后,您可以将它们放入

public static void main(String args[])

此外,由于您提到 HashMap 无法正常工作,您是否已将它们导入到其他 class 中,您正试图像这样使用它们?

import java.util.HashMap

简答:没有。 main 方法作为整个程序的主要起点。它与程序中可以使用什么 classes 无关。

如果你想使用 HashMap...

  1. 包括包含 HashMap 的包 class
  2. 声明HashMap类型的变量
    • 作为 class 的实例字段或作为 method/function
    • 中的局部变量
  3. 使用您声明的变量

并不是说你的代码一定要在main方法中,而是一定要在some方法中,或者初始化块中。如果您将代码放在非 main 方法中,它仍然可以正常工作。

如果您正在寻找一种在声明时声明 HashMap 的方法并且您不希望初始化在方法或块中,您可以使用以下方法:

HashMap<String, int> product = new HashMap<String, int>(){{
    put("product1", 1);
    put("product2", 2);
}};