2 回答

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊
以下是重置嵌套 HashMap 的方法。該值在第 22 行被刪除,然后作為新的內(nèi)部 hashmap 實(shí)例添加回來(lái)。再次,我遍歷 containsMap 和 innerMap 獲取每個(gè)地圖。一旦我有一個(gè)要重置的值,我就會(huì)調(diào)用重置函數(shù)。
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);
}
}
它真的不會(huì)改變測(cè)試版,而是評(píng)估每個(gè)條目并確保它是一個(gè)新的 HashMap 類型。我認(rèn)為這應(yīng)該有所幫助。

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
我應(yīng)該Alpha = new HashMap<>();
在我不再需要它時(shí)通過(guò)分配它來(lái)創(chuàng)建一個(gè)新的 Alpha 實(shí)例。然后我可以重新使用它而不會(huì)影響 Beta。
添加回答
舉報(bào)