Swift如何制作Multimap(Java)

时间:2018-05-14 19:39:02

标签: ios swift multimap swift-dictionary

我开始Swift和IOS开发,所以我对此非常陌生,我在java中制作我想要的东西(参见示例)但我在Swift中找不到怎么做 我想在Swift上创建一本字典,我知道我可以像这样做

var dict = Dictionary<String, Array<String>>()

var s1 = "one"
var s2 = "two"
var s3 = "three"
var root = "numbers"
dict[root] = [s1,s2,s3]

for str in dict
{
    print(str.value)
}

但这不是我想要的。我在java中做同样的事情

final TreeMultimap<String, String> third1000multi = TreeMultimap.create(Ordering.<String>natural(), Ordering.<String>natural());
for (Word w : third1000) {
            third1000multi.put(w.getType(), w.getWord());
        }

如果没有这样的键,必须创建一个键,如果有键,它必须将值添加到键中。例如,

  1. “选择” - &gt; “选择”(没有任何键“选择”所以创建一个并将其“选择”值选择= [“选择”])
  2. 2 “选择” - &GT;选择(有一个名为“选择”的键,所以在其中添加这个值。选择= [“选择”,“选择”] 谢谢你的帮助:)

1 个答案:

答案 0 :(得分:2)

您可以使用Dictionary subscript(_:default:)访问者。

var dict = [String:[String]]()

var words = [ "one", "two", "three"]
var root = "numbers"

for word in words {
    dict[root, default: []].append(word)
}
print(dict)

或者更接近您的Java代码:

var third1000multi = [String:[String]]()
for w in third1000 {
    third1000multi[w.type, default: []].append(w.word)
}