sets

package
v1.63.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 28, 2023 License: Apache-2.0, BSD-2-Clause, MIT, + 1 more Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func List

func List[T ordered](s Set[T]) []T

List returns the contents as a sorted T slice.

This is a separate function and not a method because not all types supported by Generic are ordered and only those can be sorted.

Types

type Set

type Set[T comparable] map[T]sets.Empty

Set is a set of the same type elements, implemented via map[comparable]struct{} for minimal memory consumption.

func Insert

func Insert[T comparable](set Set[T], items ...T) Set[T]

Insert adds items to the given set.

func KeySet

func KeySet[T comparable, V any](theMap map[T]V) Set[T]

KeySet creates a Set from a keys of a map[comparable](? extends interface{}). If the value passed in is not actually a map, this will panic.

func New

func New[T comparable](items ...T) Set[T]

New creates a Set from a list of values. NOTE: type param must be explicitly instantiated if given items are empty.

func (Set[T]) Clone

func (s Set[T]) Clone() Set[T]

Clone returns a new set which is a copy of the current set.

func (Set[T]) Delete

func (s Set[T]) Delete(items ...T) Set[T]

Delete removes all items from the set.

func (Set[T]) Difference

func (s Set[T]) Difference(s2 Set[T]) Set[T]

Difference returns a set of objects that are not in s2. For example: s1 = {a1, a2, a3} s2 = {a1, a2, a4, a5} s1.Difference(s2) = {a3} s2.Difference(s1) = {a4, a5}

func (Set[T]) Equal

func (s Set[T]) Equal(s2 Set[T]) bool

Equal returns true if and only if s is equal (as a set) to s2. Two sets are equal if their membership is identical. (In practice, this means same elements, order doesn't matter)

func (Set[T]) Has

func (s Set[T]) Has(item T) bool

Has returns true if and only if item is contained in the set.

func (Set[T]) HasAll

func (s Set[T]) HasAll(items ...T) bool

HasAll returns true if and only if all items are contained in the set.

func (Set[T]) HasAny

func (s Set[T]) HasAny(items ...T) bool

HasAny returns true if any items are contained in the set.

func (Set[T]) Insert

func (s Set[T]) Insert(items ...T) Set[T]

Insert adds items to the set.

func (Set[T]) Intersection

func (s Set[T]) Intersection(s2 Set[T]) Set[T]

Intersection returns a new set which includes the item in BOTH s1 and s2 For example: s1 = {a1, a2} s2 = {a2, a3} s1.Intersection(s2) = {a2}

func (Set[T]) IsSuperset

func (s Set[T]) IsSuperset(s2 Set[T]) bool

IsSuperset returns true if and only if s is a superset of s2.

func (Set[T]) Len

func (s Set[T]) Len() int

Len returns the size of the set.

func (Set[T]) PopAny

func (s Set[T]) PopAny() (T, bool)

PopAny returns a single element from the set.

func (Set[T]) SymmetricDifference

func (s Set[T]) SymmetricDifference(s2 Set[T]) Set[T]

SymmetricDifference returns a set of elements which are in either of the sets, but not in their intersection. For example: s1 = {a1, a2, a3} s2 = {a1, a2, a4, a5} s1.SymmetricDifference(s2) = {a3, a4, a5} s2.SymmetricDifference(s1) = {a3, a4, a5}

func (Set[T]) Union

func (s Set[T]) Union(s2 Set[T]) Set[T]

Union returns a new set which includes items in either s1 or s2. For example: s1 = {a1, a2} s2 = {a3, a4} s1.Union(s2) = {a1, a2, a3, a4} s2.Union(s1) = {a1, a2, a3, a4}

func (Set[T]) UnsortedList

func (s Set[T]) UnsortedList() []T

UnsortedList returns the slice with contents in random order.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL