将Set <string>值添加到新的Set <string>集合

时间:2018-04-02 11:14:00

标签: java string set

这是我的代码方法,它在课堂上#34;字典&#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]

1 个答案:

答案 0 :(得分:2)

您不希望结果包含单个字符串,该字符串是存储在地图中的原始集合的toString()表示形式。你希望它是......存储在地图中的集合,对吗?

所以,如果你真的想要返回一个空集,以防地图没有包含密钥,你可以使用

return kaannokset.getOrDefault(word, Collections.singleton(""));

但是我真的不明白为什么你想要一套空字符串。在这种情况下我只会返回一个空集:

return kaannokset.getOrDefault(word, Collections.emptySet());
相关问题