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

标签 java hashmap

我正在寻找创建一个方法,该方法将接受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/

相关文章:

java - 如何在 servlet 中与两个登录用户共享一个对象

Java HashMap 返回值不符合我对 equals 和 hashcode 的理解

java - 如何从嵌套的 HashMap 中检索键而不是其值

java - 如何从流计算 map ,然后检查 map 值的属性?

java - Actionlistener 将 Jlist 信息输出到文本区域

java - 使用文件参数通过 Java 运行 python 脚本

java - For 循环映射覆盖以前的值

java - ScheduledExecutorService 在本地和测试服务器中工作,但在实时服务器中只运行一次

Java - 根据条件迭代 map 列表

javascript - Javascript 中 C++ std::unordered_map<char, int> 的等价物是什么?