为了账号安全,请及时绑定邮箱和手机立即绑定

在Swift数组上设置操作(联合,交集)?

在Swift数组上设置操作(联合,交集)?

蝴蝶刀刀 2019-10-10 14:08:15
我是否可以使用任何标准库调用来对两个数组执行集合操作,或者自己实现这种逻辑(在功能上和效率上都尽可能理想)?
查看完整描述

3 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

是的,Swift Set上课了。


let array1 = ["a", "b", "c"]

let array2 = ["a", "b", "d"]


let set1:Set<String> = Set(array1)

let set2:Set<String> = Set(array2)

Swift 3.0+可以对集合执行以下操作:


firstSet.union(secondSet)// Union of two sets

firstSet.intersection(secondSet)// Intersection of two sets

firstSet.symmetricDifference(secondSet)// exclusiveOr

Swift 2.0可以计算数组参数:


set1.union(array2)       // {"a", "b", "c", "d"} 

set1.intersect(array2)   // {"a", "b"}

set1.subtract(array2)    // {"c"}

set1.exclusiveOr(array2) // {"c", "d"}

Swift 1.2+可以根据设置进行计算:


set1.union(set2)        // {"a", "b", "c", "d"}

set1.intersect(set2)    // {"a", "b"}

set1.subtract(set2)     // {"c"}

set1.exclusiveOr(set2)  // {"c", "d"}

如果使用自定义结构,则需要实现Hashable。


感谢Michael Stern在Swift 2.0更新的评论中。


感谢Amjad Husseini在有关Hashable信息的评论中。


查看完整回答
反对 回复 2019-10-10
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

没有任何标准库调用,但是您可能需要查看ExSwift库。它在数组上包含了许多新功能,包括差异,交集和并集。


查看完整回答
反对 回复 2019-10-10
  • 3 回答
  • 0 关注
  • 868 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信