我有一个全局变量masterList,它是一个HashMap。
private static HashMap, Integer> masterList =
new HashMap, Integer>();
我有一个递归函数generateAnagram,该函数将字谜的ArrayLists放入此HashMap中,并将列表中的单词数作为值。 但是,第一次调用后,HashMap开始混乱,并且先前的ArrayList被我尝试添加的新ArrayLists覆盖,但先前的值仍然保留。 这将导致两个键具有相同的值。
private static void generateAnagram(Set subsets, ArrayList currList, letterMap wordMap) {
if (wordMap.count() == 0) {
System.out.println("Adding: " + currList);
masterList.put(currList, currList.size());
System.out.println("Current Master: " + masterList.toString());
} else {
for (String word : subsets) {
if (word.length() <= wordMap.count() && wordMap.isConstructionPossible(word)) {
//System.out.println("Word: " + word + " " + wordMap.isConstructionPossible(word));
wordMap.remove(word);
currList.add(word);
generateAnagram(subsets, currList, wordMap);
currList.remove(word);
wordMap.addBack(word);
}
}
}
}