こんにちは、この再帰メソッドでは、すべてのアナグラムを見つけて List> に追加しようとしていますが、このコードを実行すると、空のリストがたくさん返されます。
private List<List<String>> findAnagrams(LetterInventory words,
ArrayList<String> anagram, int max,
Map<String, LetterInventory> smallDict, int level, List<List<String>> result) {
ArrayList<String> solvedWord = new ArrayList<String>();
LetterInventory shell;
LetterInventory shell2;
if (level < max || max == 0) {
Iterator<String> it = smallDict.keySet().iterator();
while (it.hasNext()) {
String k = it.next();
shell = new LetterInventory(k);
shell2 = words;
if (shell2.subtract(shell) != null) {
anagram.add(k);
shell2 = words.subtract(shell);
if (shell2.isEmpty()) {
//System.out.println(anagram.toString()); it prints off fine here
result.add(anagram); // but doesnt add here
}
else
findAnagrams(shell2, anagram, max, smallDict, level + 1, result);
anagram.remove(anagram.size()-1);
}
}
}
return results;
}