Set<T>
Set 保存不重复的值,唯一性由语言内建的 equality 与 hash 共同决定;Equatable 与 Hashable 不替换这套规则。
norm
Set<String> permissions = Set<>()
permissions.add("orders.read")
Boolean allowed = permissions.contains("orders.read")add 返回是否实际插入新元素,remove 返回是否找到并移除元素。value 元素按结构去重;class 元素按对象 identity 去重。
集合运算
norm
Set<String> all = left.union(right)
Set<String> common = left.intersection(right)
Set<String> onlyLeft = left.difference(right)这些操作返回新 Set,不修改输入。可变原地版本如果提供,名称必须明确区分。
顺序与复制
通用 Set 不保证遍历顺序。Set 自身是 value;复制后集合结构独立,其中的 class 元素仍保留对象身份。