我正在用Java编写程序。该程序应处理许多不同的值。我决定使用HashMap,如您所见:
public static Map<String, Map<Integer, String>> users = new HashMap<>();
所以,如您所见,我有一张带有2个键的地图。第一个键决定我的“第二个HashMap”。希望您能理解,因为现在这是我的问题。
public class test {
public static Map<Plot, Map<Integer, Player>> users = new HashMap<>();
public void test(String first, String second) {
if(users.get(first).isEmpty() {
users.computeIfAbsent(first, (a)->new HashMap<>()).put(0, null);
}
if(!users.get(first).containsValue(second)) {
users.computeIfAbsent(first, (a)->new HashMap<>()).put(/*my problem*/, second);
}
}
}
因此,在最后的if语句中是注释。我不知道该写些什么?另一个类调用此方法,但这无关紧要。我的目标是,将每个带有特定值(我的方法中的第二个字符串)的整数(第二个键)保存到每个字符串(第一个键)。当然,我希望每个String都以0开头并按时间顺序排列。但是请记住,您不能在课程开始时使用普通的Integer-var,因为如果您对每个键都使用它,那将无法解决我的问题。
如果我对您的理解正确,那么“内部地图”(类型为Map<Integer, String>
的地图)将始终遵守以下规则:
地图的键将始终覆盖从0到其大小的封闭范围。例如,大小为8的内部映射将具有以下键:`[0、1、2、3、4、5、6、7]。