【发布时间】:2016-12-28 05:30:56
【问题描述】:
如何快速比较两个具有共同元素的数组并获取该元素?
let a1 = [1, 2, 3]
let a2 = [4, 2, 5]
我想比较 a1 和 a2 并从 swift 2.2 中的比较中得到结果2。如何?
【问题讨论】:
如何快速比较两个具有共同元素的数组并获取该元素?
let a1 = [1, 2, 3]
let a2 = [4, 2, 5]
我想比较 a1 和 a2 并从 swift 2.2 中的比较中得到结果2。如何?
【问题讨论】:
你可以使用swift的过滤功能
let a1 = [1, 2, 3]
let a2 = [4, 2, 5]
let a = a1.filter () { a2.contains($0) }
print(a)
打印:[2]
如果数据是
let a1 = [1, 2, 3]
let a2 = [4, 2, 3, 5]
打印:[2, 3]
如果你想要 Int 的结果不在数组中
let result = a.first
你会得到可选的 Int(Int?) 和第一个公共元素的结果
【讨论】:
Set 来加快.contains() 的调用速度。
另一种选择是使用集合:
let a1 = [1, 2, 3]
let a2 = [4, 2, 5]
let a = Set(a1).intersection(Set(a2)) // <- getting the element itself
print(a) // 2
let contains: Bool = !Set(a1).isDisjoint(with: Set(a2)) // <- checking if they have any common element
print(contains) // true
【讨论】: