gpt4 book ai didi

Java HashMap - variable.getKey - 通用打印方法

转载 作者:行者123 更新时间:2023-12-01 21:09:07 25 4
gpt4 key购买 nike

我正在寻找创建一个方法,该方法将接受String作为参数,然后打印出String相应的HashMap也指。

sensorMappings = new HashMap<>();
sensorMappings.put(136, "doorNumber");

这是我打印HashMap的方法:

void printHashMap(String mapChoice){
for (Integer ID : mapChoice.keySet()) {
String key = ID.toString();
String value = sensorMappings.get(ID);
System.out.println(key + " " + value);
}
}

我收到错误:

Can't resolve method 'keySet()'

编辑 - 完整代码:

主类

sensorInfo.printHashMap("mapChoice");

传感器类

public class Sensors {
private HashMap<Integer, String> sensorMappings;

Sensors(){
sensorMappings = new HashMap<>();
sensorMappings.put(136, "doorNumber");
}

void printHashMap(String mapChoice){
for (Integer ID : mapChoice.keySet()) {
String key = ID.toString();
String value = sensorMappings.get(ID);
System.out.println(key + " " + value);
}
}

我有多个 HashMap,并希望创建一个通用方法来通过传入所需的 HashMap 来打印它们。

最佳答案

如果您将所有各种 hashMap 注册到另一个按名称键入的变量中,则可以实现此目的。然后您可以查找您已注册的任何 HashMap 。

下面是一个示例。

public class MapRegistry {
static Map<String,HashMap<Integer,String>> allMaps = new HashMap<>();

public static void register(String name, HashMap<Integer,String> myMap) {
allMaps.put(name, myMap);
}

public static HashMap<Integer,String> find(String name) {
return allMaps.get(name);
}
}

在您的传感器类中

Sensors(){
sensorMappings = new HashMap<>();
MapRegistry.register("sensorMappings", sensorMappings);
sensorMappings.put(136, "doorNumber");
}

然后查找特定 map :

void printHashMap(String mapChoice){
HashMap<Integer,String> map = MapRegistry.find(mapChoice);
for (Integer ID : map.keySet()) {
String key = ID.toString();
String value = map.get(ID);
System.out.println(key + " " + value);
}
}

如果您准备传递注册表或可以注入(inject)它,则不需要静态类。

如果您删除了 map ,则需要注意,因为注册表将保留它们。因此,您需要确保注册表也已更新,否则会出现泄漏。

关于Java HashMap - variable.getKey - 通用打印方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41590060/

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