这是我的代码方法,它在课堂上#34;字典":
private Map<String, Set<String>> kaannokset;
public OmaUseanKaannoksenSanakirja() {
this.kaannokset= new HashMap<>();
}
public void add(String word, String translate) {
kaannokset.putIfAbsent(word, new HashSet<>());
kaannokset.get(word).add(translate);
}
public Set<String> translate(String word) {
Set<String> listaus = new HashSet<>();
if (kaannokset.containsKey(word)) {
listaus.add(kaannokset.get(word).toString());
} else {
listaus.add("");
}
return listaus;
}
当我尝试调用我的方法时:
dictionary.translate("six");
//output: [[sex]]
我知道额外的方括号是结果,因为我正在为Set调用toString()。如何从输出中删除额外的方括号?我的目标是:
dictionary.translate("six");
//goal output:
//[sex]
答案 0 :(得分:2)
您不希望结果包含单个字符串,该字符串是存储在地图中的原始集合的toString()表示形式。你希望它是......存储在地图中的集合,对吗?
所以,如果你真的想要返回一个空集,以防地图没有包含密钥,你可以使用
return kaannokset.getOrDefault(word, Collections.singleton(""));
但是我真的不明白为什么你想要一套空字符串。在这种情况下我只会返回一个空集:
return kaannokset.getOrDefault(word, Collections.emptySet());