我有一个HashMap
,可以将两个Strings
转换为单词,然后将单词添加到地图中。我有它,以便一个键可以指向多个值。现在,我想做一个循环来反转表,以便所有值都指向键。不要烦恼指向相反的多个值的键。
Map<Word,Set<Word>> map = new HashMap<Word,Set<Word>>();
public void add(Word t, Word m) {
if(map.containsKey(t)) {
Set<Word> newM = map.get(t);
newM.add(m);
} else {
Set<Word> newSet = new HashSet<>();
newSet.add(m);
map.put(t, newSet);
}
}
public void add(String t, String m) {
add(new Word(t), new Word(m));
}
public Dictionary inverse() {
}
答案 0 :(得分:1)
您面临的主要问题是常见的滥用地图行为。就您而言,您确实没有地图。您有一些相似的东西,因此您决定使用地图。您真正拥有的是一组DictionaryEntry对象,其中DidctionaryEntry看起来像这样:
public class DisctionaryEntry {
private String word;
private Set<String> translations;
}
我认为,使用该数据结构并为其添加一个addTranslation(String translation)
方法,您的问题就变得很明显。