我们说我有一个包含多个国家/地区名称的数组,例如"澳大利亚,丹麦,英国,奥地利,澳大利亚,丹麦和#34;一些国名出现了两次。
如何根据国家/地区名称对它们进行排序以形成字典。所以他们的关键是国名,而元素就是国家。
如果我的阵列中有两个国家/地区相同,则关键是国家/地区,而这些国家/地区将是这两个国家/地区。
我需要它,这样如果我添加另一个国家,它将为国家制作一个密钥,而无需事先指定密钥。
每个国家/地区都需要位于其所在国家/地区的关键字位置,而不依赖于阵列中国家/地区的出现情况。
我认为我已经为它制定了一个基本的算法,但我似乎无法将其付诸实践。
这个算法是正确的还是至少朝着正确的方向迈出了一步?
感谢您的帮助。
编辑: 我们有一个数组,其中包含国家名称"澳大利亚,丹麦,英国,奥地利,澳大利亚,丹麦"
我需要将它组织成一个基于国家/地区的字典,因为我们需要对数组中的两个国家/地区丹麦进行排序,因此看起来像这样:
2015-05-16 18:44:42
键是国家/地区名称,元素是字符串。
英国只出现一次,因此字典的一部分将如下所示:
Calendar calendar = new GregorianCalendar();
TimeZone timeZone = TimeZone.getTimeZone("Europe/Kopenhagen");
calendar.setTimeZone(timeZone);
System.out.println(calendar);
我希望我更有道理。
答案 0 :(得分:4)
不确定这是不是你的意思。这不是很清楚。
var dict = [String: [String]]()
let countries = ["Holland", "England", "France", "Belgium", "England"]
for country in countries {
dict[country] = (dict[country] ?? []) + [country]
}
for (key, value) in dict {
println("KEY: \(key) & VALUE: \(value)")
}
输出:
KEY: England & VALUE: [England, England]
KEY: Belgium & VALUE: [Belgium]
KEY: Holland & VALUE: [Holland]
KEY: France & VALUE: [France]
编辑:
在他的评论中基于Martin R的链接进行了简化。
答案 1 :(得分:0)
最简单的方法是循环遍历数组并检查字典中是否存在密钥。将字典的每个值设为NSMutableArray。