猿问

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

我是否可以使用任何标准库调用来对两个数组执行集合操作,或者自己实现这种逻辑(在功能上和效率上都尽可能理想)?



蝴蝶刀刀
浏览 869回答 3
3回答

慕哥6287543

是的,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 setsfirstSet.intersection(secondSet)// Intersection of two setsfirstSet.symmetricDifference(secondSet)// exclusiveOrSwift 2.0可以计算数组参数:set1.union(array2)&nbsp; &nbsp; &nbsp; &nbsp;// {"a", "b", "c", "d"}&nbsp;set1.intersect(array2)&nbsp; &nbsp;// {"a", "b"}set1.subtract(array2)&nbsp; &nbsp; // {"c"}set1.exclusiveOr(array2) // {"c", "d"}Swift 1.2+可以根据设置进行计算:set1.union(set2)&nbsp; &nbsp; &nbsp; &nbsp; // {"a", "b", "c", "d"}set1.intersect(set2)&nbsp; &nbsp; // {"a", "b"}set1.subtract(set2)&nbsp; &nbsp; &nbsp;// {"c"}set1.exclusiveOr(set2)&nbsp; // {"c", "d"}如果使用自定义结构,则需要实现Hashable。感谢Michael Stern在Swift 2.0更新的评论中。感谢Amjad Husseini在有关Hashable信息的评论中。

吃鸡游戏

没有任何标准库调用,但是您可能需要查看ExSwift库。它在数组上包含了许多新功能,包括差异,交集和并集。
随时随地看视频慕课网APP
我要回答