如何确定一个数组是否包含Swift中另一个数组的所有元素? [英] How to determine if one array contains all elements of another array in Swift?
本文介绍了如何确定一个数组是否包含Swift中另一个数组的所有元素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有2个数组:
var list:Array<Int> = [1,2,3,4,5]
var findList:Array<Int> = [1,3,5]
我想确定 list
Array包含所有 findList
元素。
I want to determine if list
Array contains all findList
elements.
顺便说一下,元素可能是 String
以及其他类型。
By the way, elements might be String
as well or other type.
怎么做?
我知道Swift提供的包含
方法,该方法适用于一个项目。
I know that Swift provides contains
method that works with one item.
推荐答案
您可以使用 NSSet
为您完成所有工作,而不是遍历数组并自行过滤。
Instead of iterating through arrays and doing filtering yourself, you can use NSSet
to do all the work for you.
var list:Array<Int> = [1,2,3,4,5]
var findList:Array<Int> = [1,3,5]
let listSet = NSSet(array: list)
let findListSet = NSSet(array: findList)
let allElemtsEqual = findListSet.isSubsetOfSet(otherSet: listSet)
NSSet
在检查它是否包含任何对象时比数组快很多。实际上它就是它的设计目标。
NSSet
is a lot faster than arrays at checking if it contains any object. In fact it's what it's designed for.
编辑:使用Swift的内置设置
。
Using Swift's built-in Set
.
let list = [1,2,3,4,5]
let findList = [1,3,5]
let listSet = Set(list)
let findListSet = Set(findList)
let allElemsContained = findListSet.isSubsetOf(listSet)
这篇关于如何确定一个数组是否包含Swift中另一个数组的所有元素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文