Swift 程序 反转 Set
在 Swift 中,Set 是一个无序的集合,只包含唯一的值。因为 Set 是无序的,所以没有像数组那样直接反转集合元素的方式。但是,您可以将 Set 转换为数组,然后应用 reversed() 方法或任何用户定义的函数来反转集合,然后将结果转换回 Set。下面通过示例来讨论这种方法。
示例1
在以下示例中,我们将具有字符串类型的集合。我们先将其转换成数组来反转元素,然后应用 reversed() 函数,再将最终结果转换回集合并显示输出结果。
import Foundation
import Glibc
var myFavcolor : Set = ["Blue", "Pink", "Yellow", "Sky blue", "Red"]
// 将 set 转换为 array
var arr = Array(myFavcolor)
// 使用 reversed() 函数反转 set
var revArr = arr.reversed()
// 将结果转换回集合
var resultantSet = Set(revArr)
print("Reversed Set is", resultantSet)
输出结果
Reversed Set is ["Pink", "Yellow", "Red", "Sky blue", "Blue"]
示例2
在以下示例中,我们将具有整数类型的集合。首先我们将这个 set 转换为数组使用 Array() 构造函数。然后反转数组的顺序,最后使用 Set() 构造函数将反转后的数组转换为 set 。
import Foundation
import Glibc
var myFavNum: Set<Int> = [12, 98, 34, 1, 34, 22, 67]
// 将 set 转换为 array
var myArr = Array(myFavNum)
let sizze = myArr.count
// 反转 set
for i in 0..<sizze/2 {
let j = sizze - i - 1
let t = myArr[i]
myArr[i] = myArr[j]
myArr[j] = t
}
// 将结果转换回集合
let revSet = Set(myArr)
print(revSet)
输出结果
[12, 34, 98, 22, 67, 1]
结论
这就是如何反转一个 set 。在上面讨论的示例中,集合元素的顺序是任意的,因此反转 set 的顺序可能不必与原始集合相同。