UnorderedSet
UnorderedSet 对象是一个存储一个或多个唯一对象的容器。它类似于 StringSet,不同之处在于它可以存储任何类型的变体(而不仅仅是字符串),并且内容不保持排序(实际上,集合成员的顺序是未指定的)。与 StringSet 一样,它使用字典系统来定位成员,而不是使用数字索引。因此,您可以比线性搜索 Vector 更快地查找成员。
您可以使用 DOpusFactory 对象创建新的 UnorderedSet。
在向 UnorderedSet 添加对象时应谨慎。与字符串和数字不同,容器仅在两个对象都是完全相同的对象(即相同的实例/引用)时才认为它们相等。两个具有相同值的独立对象不会被视为相等,并且可以同时存在于同一个 UnorderedSet 中。
JScript 示例:
var us = DOpus.Create.UnorderedSet();
us.insert("cat");
us.insert("cat"); // 无效,因为“cat”已插入。
us.insert("dog");
us.insert(DOpus.FSUtil.NewPath("C:\\"));
us.insert(DOpus.FSUtil.NewPath("C:\\")); // 插入第二个 C:\ Path 对象!
var p = DOpus.FSUtil.NewPath("D:\\");
us.insert(p);
us.insert(p); // 无效,因为 p 已插入。
DOpus.Output("count: " + us.count);
for (var e = new Enumerator(us); !e.atEnd(); e.moveNext())
{
DOpus.Output("Item: " + e.item());
}
这将输出以下内容(项目的顺序可能会有所不同):
count: 5
Item: cat
Item: dog
Item: D:\
Item: C:\
Item: C:\
属性名称
返回值类型
描述
count
int
返回 UnorderedSet 当前持有的元素数量。
empty
bool
如果 UnorderedSet 为空,则返回 True,否则返回 False。
length
int
count 的同义词。
size
int
count 的同义词。
方法名称
参数
返回值类型
描述
clear
none
none
清除 UnorderedSet 的内容。
erase
variant
none
如果元素存在于集合中,则擦除该元素。
exists
variant
bool
如果指定的元素存在于集合中,则返回 True。
insert
variant
bool
如果元素不存在,则将元素插入集合中。如果成功,则返回 True。
merge
<UnorderedSet:from>
none
将另一个 UnorderedSet 的内容与此 UnorderedSet 合并。
最后更新于