Swift 如何制作 Multimap(Java)
Swift how can I make Multimap(Java)
我开始 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());
}
如果没有这样的键,必须创建一个键,如果有键,则必须将值添加到键中。例如,
- "choose" --> "choosing"(没有任何键 "choose" 所以创建一个并把它 "choosing" value choose = ["choosing" ] )
2."choose"--> choosen(有一个名为“choose”的键,所以在里面添加这个值。choose = ["choosing","choosen"]
感谢您的帮助:)
您可以使用 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)
}
我开始 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());
}
如果没有这样的键,必须创建一个键,如果有键,则必须将值添加到键中。例如,
- "choose" --> "choosing"(没有任何键 "choose" 所以创建一个并把它 "choosing" value choose = ["choosing" ] )
2."choose"--> choosen(有一个名为“choose”的键,所以在里面添加这个值。choose = ["choosing","choosen"] 感谢您的帮助:)
您可以使用 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)
}