SplayTreeSet<E> 构造函数
创建一个新的带有指定比较函数的 SplayTreeSet。
如果省略 compare
函数,则默认为 Comparable.compare,并且元素必须是可比较的。
提供的 compare
函数可能不是对所有对象都起作用。它甚至可能对所有 E
实例都无作用。
对于向集合添加元素的操作,用户不应传入与比较函数不兼容的对象。
方法 contains,remove,lookup,removeAll 或 retainAll 均可接受任意对象,可以使用 isValidKey
测试在将对象传递到 compare
函数之前过滤这些对象。
如果提供了 isValidKey
,则仅使用 compare
方法比较满足 isValidKey(other)
条件的值。如果 isValidKey
函数对一个对象返回 false,则假定该对象不在集合中。
如果省略,isValidKey
函数默认检查类型参数:other is E
。
实现
SplayTreeSet(
[int Function(E key1, E key2)? compare,
bool Function(dynamic potentialKey)? isValidKey])
: _compare = compare ?? _defaultCompare<E>(),
_validKey = isValidKey ?? ((dynamic v) => v is E);