访问和修改Set

2021-08-08  本文已影响0人  一个栗

访问 Set

let courses:Set = ["Math", "English", "History"]
for course in courses {
    print(course)
}
print("------")
for course in courses.sorted() {
    print(course)
}

执行结果如下:
History
Math
English
------
English
History
Math
let set:Set<Character> = ["A", "B", "C"]
print(set.count)
print(set.isEmpty)

执行结果如下:
3
false

添加元素

struct Person {
    var name : String
    var age: Int
}

extension Person: Hashable {
    func hash(into hasher:inout Hasher) {
        hasher.combine(name)
    }
}

extension Person:Equatable {
    static func == (lhs:Person, rhs:Person) -> Bool {
        return lhs.name == rhs.name
    }
}

var personSet:Set = [Person(name: "zhangsan", age: 20)]
personSet.update(with: Person(name: "zhangsan", age: 20))
personSet.update(with: Person.init(name: "wangwu", age: 15))
print(personSet)

执行结果如下:
[__lldb_expr_7.Person(name: "wangwu", age: 15), __lldb_expr_7.Person(name: "zhangsan", age: 20)]

移除元素

var personSet:Set = [Person(name: "zhangsan", age: 28), Person(name: "lisi", age: 29)]
personSet.update(with: Person(name: "zhangsan", age: 38))
personSet.update(with: Person(name: "wangwu", age: 18))
print(personSet.filter{$0.age > 20})

执行结果如下:
[__lldb_expr_12.Person(name: "lisi", age: 29), __lldb_expr_12.Person(name: "zhangsan", age: 38)]
var personSet:Set = [Person(name: "zhangsan", age: 28), Person(name: "lisi", age: 29)]
personSet.update(with: Person(name: "zhangsan", age: 38))
personSet.update(with: Person(name: "wangwu", age: 18))
personSet.remove(Person(name: "zhangsan", age:33))
print(personSet)

执行结果如下:
[__lldb_expr_14.Person(name: "lisi", age: 29), __lldb_expr_14.Person(name: "wangwu", age: 18)]
var personSet:Set = [Person(name: "zhangsan", age: 28), Person(name: "lisi", age: 29)]
personSet.update(with: Person(name: "zhangsan", age: 38))
personSet.update(with: Person(name: "wangwu", age: 18))
personSet.removeFirst()
print(personSet)

执行结果如下:
[__lldb_expr_16.Person(name: "zhangsan", age: 38), __lldb_expr_16.Person(name: "lisi", age: 29)]
上一篇 下一篇

猜你喜欢

热点阅读