红黑树结构的集合
type Iterator
func (iterator *Iterator) Begin() // 将迭代器重置为初始状态,然后调用Next获取第一个元素func (iterator *Iterator) End() // 将迭代器移过最后一个元素,然后调用Prev获取最后一个元素// 将迭代器移动到第一个元素,如果容器中有第一个元素则返回true。// 如果First()返回true,则可以通过index()和value()检索第一个元素的索引和值。修改迭代器的状态func (iterator *Iterator) First() bool// 将迭代器移动到最后元素,如果容器中有第一个元素则返回true。// 如果Last()返回true,则可以通过index()和value()检索第一个元素的索引和值。修改迭代器的状态func (iterator *Iterator) Last() boolfunc (iterator *Iterator) Next() boolfunc (iterator *Iterator) Prev() boolfunc (iterator *Iterator) Index() intfunc (iterator *Iterator) Value() interface{}
type Set
// 用自定义比较器实例化一个集合func NewWith(comparator utils.Comparator, values ...interface{}) *Set// 用IntComparator实例化一个集合,即value的类型是intfunc NewWithIntComparator(values ...interface{}) *Set// 用StringComparator实例化一个集合,即value的类型是stringfunc NewWithStringComparator(values ...interface{}) *Setfunc (set *Set) Add(items ...interface{})// 将集合中的每个元素传递给给定的函数,如果函数对所有元素都返回true,则返回truefunc (set *Set) All(f func(index int, value interface{}) bool) bool// 将集合中的每个元素传递给给定的函数,如果函数对任何元素返回true,则返回truefunc (set *Set) Any(f func(index int, value interface{}) bool) boolfunc (set *Set) Clear()func (set *Set) Contains(items ...interface{}) boolfunc (set *Set) Each(f func(index int, value interface{}))func (set *Set) Empty() bool// 将容器中的每个元素传递给给定的函数,并返回函数为true或-1的第一个元素(索引,值)// 如果没有元素符合条件,则返回nilfunc (set *Set) Find(f func(index int, value interface{}) bool) (int, interface{})func (set *Set) FromJSON(data []byte) errorfunc (set *Set) Iterator() Iterator// 为每个元素调用给定函数一次,并返回一个包含给定函数返回值的容器func (set *Set) Map(f func(index int, value interface{}) interface{}) *Setfunc (set *Set) Remove(items ...interface{})// 返回一个新容器,其中包含给定函数返回真值的所有元素func (set *Set) Select(f func(index int, value interface{}) bool) *Setfunc (set *Set) Size() intfunc (set *Set) String() stringfunc (set *Set) ToJSON() ([]byte, error)func (set *Set) Values() []interface{}
例子
package mainimport "github.com/emirpasic/gods/sets/treeset"// TreeSetExample to demonstrate basic usage of TreeSetfunc main() {set := treeset.NewWithIntComparator() // emptyset.Add(1) // 1set.Add(2, 2, 3, 4, 5) // 1, 2, 3, 4, 5 (in order, duplicates ignored)set.Remove(4) // 1, 2, 3, 5 (in order)set.Remove(2, 3) // 1, 5 (in order)set.Contains(1) // trueset.Contains(1, 5) // trueset.Contains(1, 6) // false_ = set.Values() // []int{1,5} (in order)set.Clear() // emptyset.Empty() // trueset.Size() // 0}
