我正在尝试创建字符串到字符串的映射。以下是我尝试过的方法,但两种方法都不起作用。它出什么问题了?
public class Data
{
private final Map<String, String> data = new HashMap<>();
data["John"] = "Taxi Driver";
data.put("John", "Taxi Driver");
}
我正在尝试创建字符串到字符串的映射。以下是我尝试过的方法,但两种方法都不起作用。它出什么问题了?
public class Data
{
private final Map<String, String> data = new HashMap<>();
data["John"] = "Taxi Driver";
data.put("John", "Taxi Driver");
}
这里有两个问题。
首先,您不能[]
像在其他语言中那样使用语法。方括号仅适用于 Java 中的数组,因此只能与整数索引一起使用。
data.put
是正确的,但这是一个语句,因此必须存在于方法块中。只有字段声明可以存在于类级别。这是一个示例,其中所有内容都在方法的本地范围内:
public class Data {
public static void main(String[] args) {
Map<String, String> data = new HashMap<String, String>();
data.put("John", "Taxi Driver");
data.put("Mark", "Professional Killer");
}
}
如果要将映射初始化为类的静态字段,则可以使用Map.of
,因为 Java 9:
public class Data {
private static final Map<String, String> DATA = Map.of("John", "Taxi Driver");
}
在 Java 9 之前,您可以使用静态初始化程序块来完成同样的事情:
public class Data {
private static final Map<String, String> DATA = new HashMap<>();
static {
DATA.put("John", "Taxi Driver");
}
}
语法是
data.put("John","Taxi driver");
您在代码中遇到的两个错误非常不同。
第一个问题是您Map
在没有声明的情况下初始化并填充类的主体。您可以在类的主体中包含静态Map
和static {//TODO manipulate Map}
语句,或者在方法或类的构造函数中初始化和填充 Map。
第二个问题是你不能在Map
句法上把 a 当作一个array
,所以这个语句data["John"] = "Taxi Driver";
应该被替换为data.put("John", "Taxi Driver")
。如果您的 中已有“John”键HashMap
,则其值将替换为“Taxi Driver”。
试试这个代码
HashMap<String, String> map = new HashMap<String, String>();
map.put("EmpID", EmpID);
map.put("UnChecked", "1");