Swift Set集合及常用方法详解总结

Swift 集合 Set 及常用方法

1. 创建Set集合

// 创建Set
var set: Set<Int> = [1, 2, 3]
var set2 = Set(arrayLiteral: 1, 2, 3)

2. 获取元素

// set 获取最小值
set.min()

// 获取第一个元素,顺序不定
set[set.startIndex]
set.first

// 通过下标获取元素,只能向后移动,不能向前
// 获取第二个元素
set[set.index(after: set.startIndex)]

// 获取某个下标后几个元素
set[set.index(set.startIndex, offsetBy: 2)]

3. 常用方法

// 获取元素个数
set.count

// 判断空集合
if set.isEmpty {
   print("set is empty")
}

// 判断集合是否包含某个元素
if (set.contains(3)) {
    print("set contains 3")
}

// 插入
set.insert(0)

// 移除
set.remove(2)
set.removeFirst()

// 移除指定位置的元素,需要用 ! 拆包,拿到的是 Optional 类型,如果移除不存在的元素,EXC_BAD_INSTRUCTION
set.remove(at: set.firstIndex(of: 1)!)

set.removeAll()

var setStr1: Set<String> = ["1", "2", "3", "4"]
var setStr2: Set<String> = ["1", "2", "5", "6"]

// Set 取交集
setStr1.intersection(setStr2) // {"2", "1"}

// Set 取交集的补集
setStr1.symmetricDifference(setStr2) // {"4", "5", "3", "6"}

// Set 取并集
setStr1.union(setStr2) // {"2", "3", "1", "4", "6", "5"}

// Set 取相对补集(差集),A.subtract(B),即取元素属于 A,但不属于 B 的元素集合
setStr1.subtract(setStr2) // {"3", "4"}

var eqSet1: Set<Int> = [1, 2, 3]
var eqSet2: Set<Int> = [3, 1, 2]

// 判断 Set 集合相等
if eqSet1 == eqSet2 {
    print("集合中所有元素相等时,两个集合才相等,与元素的顺序无关")
}

let set3: Set = [0, 1]
let set4: Set = [0, 1, 2]

// 判断子集
set3.isSubset(of: set4) // set3 是 set4 的子集,true
set3.isStrictSubset(of: set4) // set3 是 set4 的真子集,true

// 判断超集
set4.isSuperset(of: set3) // set4 是 set3 的超集,true
set4.isStrictSuperset(of: set3) // set4 是 set3 的真超集,true

4. Set 遍历

// 遍历元素
for ele in set4 {
    print(ele)
}

// 遍历集合的枚举
for ele in set4.enumerated() {
    print(ele)
}

// 下标遍历
for index in set4.indices {
    print(set4[index])
}

// 从小到大排序后再遍历
for ele in set4.sorted(by: <) {
    print(ele)
}

GitHub 源码:SetType.playground

到此这篇关于Swift Set集合及常用方法详解总结的文章就介绍到这了,更多相关Swift Set集合内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Swift心得笔记之集合类型

    数组 重复值的初始化 除了普通的初始化方法,我们可以通过 init(count: Int, repeatedValue: T) 来初始化一个数组并填充上重复的值: 复制代码 代码如下: // [0.0,0.0,0.0] var threeDoubles = [Double](count:3,repeatedValue:0.0) 带索引值的遍历 我们可以用 for in 遍历数组,如果想要 index 的话,可以用 enumerate<Seq : SequenceType>(base: Seq)

  • Swift中内置的集合类型学习笔记

    一.引言 Swift中提供了3种集合类型,Array数据类型,Set集合类型,Dictionary字典类型.Array用于存放一组有序的数据,数据角标从0开始一次递增:Set用于存放一组无序的数据,数据不可以重复:Dictionary也用于存放一组无序的数据,只是其是按照键值对的方式存储,键值必须唯一.这里借用官方文档中的一张图来表示3种集合类型的特点: 二.Array类型 Array通常也被称为数组,Swift是一种类型安全语言,其中的Array类型也必须确定其元素的类型,声明数组类型有两种方

  • Swift循环遍历集合的方法总结分享

    前言 之前分享总结过OC循环遍历,文章点击这里:iOS遍历集合(NSArray,NSDictionary.NSSet)方法总结.随着Swift的逐渐完善,自己使用Swift开发的项目经验和知识逐渐积累,是时候总结一下Swift的循环遍历了.相信Swift一定会给你一些不一样的东西,甚至是惊喜,感兴趣的朋友们下面来一起看看吧. 第一种方式:for-in循环 OC延续了C语言的for循环,在Swift中被彻底改造,我们无法再使用传统形式的for循环了 遍历数组和字典: //遍历数组 let iosA

  • Swift教程之集合类型详解

    Swift 提供两种集合类型来存储集合,数组和字典.数组是一个同类型的序列化列表集合.字典是一个能够使用类似于键的唯一标识符来获取值的非序列化集合. 在Swift中,数组和字典的键和值都必须明确它的类型.这意味这数组和字典不会插入一个错误的类型的值,以致于出错.这也意味着当你在数组和字典中取回数值的时候能够确定它的类型. Swift 使用确定的集合类型可以保证代码工作是不会出错,和让你在开发阶段就能更早的捕获错误. note: Swift的数组 储存不同的类型会展示出不同的行为,例如变量,常量或

  • Swift Set集合及常用方法详解总结

    Swift 集合 Set 及常用方法 1. 创建Set集合 // 创建Set var set: Set<Int> = [1, 2, 3] var set2 = Set(arrayLiteral: 1, 2, 3) 2. 获取元素 // set 获取最小值 set.min() // 获取第一个元素,顺序不定 set[set.startIndex] set.first // 通过下标获取元素,只能向后移动,不能向前 // 获取第二个元素 set[set.index(after: set.start

  • Swift 字符串类型及常用方法详解总结

    目录 1. 构造 2. 拼接 3. 字符 4. 转义符 5. 常用方法 Swift 字符串类型及常用方法 1. 构造 // 直接赋值 text = "" // 1. 构造方法 text = String() // "" // 字符串构造 text = String("William") // "William" // 整型构造 text = String(888) // "888" // 浮点型构造 tex

  • Java中HashMap集合的常用方法详解

    目录 public Object clone() 总结 public Object clone() 返回hashMap集合的副本 其余的方法都是实现Map集合的 //www.jb51.net/article/227296.htm 总结 本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

  • Java中Map集合的常用方法详解

    目录 1.V put(K key, V value) 2.void putAll(Map<? extends K,? extends V> m) 3.void clear() 4.boolean containsKey(Object key) 5.boolean containsValue(Object value) 6.Set<Map.Entry<K,V>> entrySet() 7.boolean equals(Object o) 8.V get(Object ke

  • java中set集合的常用方法详解

    因为Set集合也是继承Collection集合 所以这里就不讲继承Collection集合的方法 都是继承Collection集合的方法 //www.jb51.net/article/227290.htm Set集合与List集合的区别就是,Set集合的元素不能重复,List集合的元素是可以重复的. 总结 本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

  • Java中Collection集合的常用方法详解

    目录 1.boolean add(E e) 2.boolean addAll(Collection<? extends E> c) 3.void clear() 4.boolean contains(Object o) 5.boolean containsAll(Collection<?> c) 6.boolean equals(Object o) 7.int hashCode() 8.boolean isEmpty() 9.Iterator<E> iterator()

  • Java中Hashtable集合的常用方法详解

    目录 public Object clone() public Enumeration<V> elements() 总结 public Object clone() 返回Hashtable的副本 public Enumeration<V> elements() 返回此哈希表中的值的枚举 其他的方法都是实现Map集合的方法 //www.jb51.net/article/227296.htm 总结 本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

  • Java中List集合的常用方法详解

    目录 1.void add(int index, E element) 2.boolean addAll(int index, Collection<? extends E> c) 3.E get(int index) 4.int indexOf(Object o) 5.ListIterator<E> listIterator() 6.ListIterator<E> listIterator(int index) 7.E remove(int index) 8.E se

  • java中TreeMap集合的常用方法详解

    目录 public Map.Entry<K,V> ceilingEntry(K key) public K ceilingKey(K key) public Object clone() public Comparator<? super K> comparator() public NavigableSet<K> descendingKeySet() public NavigableMap<K,V> descendingMap() public Map.E

  • Java的Collection集合的常用方法详解

    目录 1.boolean add(Ee) 2.boolean addAll(Collection<? extends E>c) 3.void clear() 4.boolean contains(Objecto) 5.boolean containsAll(Collection<?>c) 6.boolean equals(Objecto) 7.int hashCode() 8.boolean isEmpty() 9.Iterator<E> iterator() 10.b

随机推荐