慕标5832272
以下是重置嵌套 HashMap 的方法。该值在第 22 行被删除,然后作为新的内部 hashmap 实例添加回来。再次,我遍历 containsMap 和 innerMap 获取每个地图。一旦我有一个要重置的值,我就会调用重置函数。import java.util.*;import java.lang.*;public class Collections {public HashMap<String, HashMap<String, Integer>> createMap(String beta, String alpha, int m, HashMap<String, Integer> innerStructure, HashMap<String, HashMap<String, Integer>> containingStructure) { while(m>0) { innerStructure.put(beta, m); m--; } containingStructure.put(alpha, innerStructure); return containingStructure;}public void reset(HashMap<String, HashMap<String, Integer>> map, int x) { HashMap<String, Integer> betaMap = new HashMap<String, Integer>(); for(Map.Entry<String,HashMap<String,Integer>> entry: map.entrySet()) { System.out.println("Key before is:" + entry.getKey()); if(entry.getValue() instanceof Map) { for(Map.Entry<String, Integer> mapEntry: entry.getValue().entrySet()) { if(mapEntry.getValue() == x) { entry.getValue().remove(x); map.put(entry.getKey(), betaMap); } } } } } public void print(HashMap<String, HashMap<String, Integer>> map) { for(Map.Entry<String,HashMap<String,Integer>> entry: map.entrySet()) { System.out.println("Key is:" + entry.getKey()); if(entry.getValue() instanceof Map) { for(Map.Entry<String, Integer> mapEntry: entry.getValue().entrySet()) { System.out.println(mapEntry.getKey()); } } }}public static void main(String[] args) { Collections collections = new Collections(); HashMap<String, Integer> innerStructure = new HashMap<>(); HashMap<String, HashMap<String, Integer>> containingStructure = new HashMap<>(); containingStructure = collections.createMap("B1", "A1", 4, innerStructure, containingStructure); collections.reset(containingStructure, 2); collections.print(containingStructure);}}它真的不会改变测试版,而是评估每个条目并确保它是一个新的 HashMap 类型。我认为这应该有所帮助。