list

package
v0.4.43 Latest Latest
Warning

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

Go to latest
Published: Sep 8, 2023 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Map

func Map[K comparable, V any](l *List[K], f func(K) V) []V

func MapE

func MapE[K comparable, V any](l *List[K], f func(K) (V, error)) ([]V, error)

func Sort

func Sort[T constraints.Ordered](l *List[T])

func SortFunc

func SortFunc[T comparable](l *List[T], less func(a, b T) bool)

func SortStableFunc

func SortStableFunc[T comparable](l *List[T], less func(a, b T) bool)

Types

type List

type List[T comparable] struct {
	E []T
}

func FromSet

func FromSet[T comparable](s *set.Set[T]) *List[T]

func New

func New[T comparable]() *List[T]

func WithCapacity

func WithCapacity[T comparable](capacity int) *List[T]

func (*List[T]) Add

func (l *List[T]) Add(e ...T)

func (*List[T]) AddIfNotExist

func (l *List[T]) AddIfNotExist(e ...T)

AddIfNotExist like Add but 只添加不存在的元素 时间和空间复杂度 O(M+N)

func (*List[T]) AddIfNotExistSingle

func (l *List[T]) AddIfNotExistSingle(e T)

AddIfNotExistSingle like AddIfNotExist but 只能添加单个元素 相比于 AddIfNotExist 时间复杂度 O(N) 不变, 空间复杂度优化至 O(1) (不构建 set)

func (*List[T]) Contains

func (l *List[T]) Contains(e T) bool

Contains 判断 l 是否包含元素 e 时间复杂度 O(N)

func (*List[T]) ContainsAll

func (l *List[T]) ContainsAll(all []T) bool

ContainsAll 返回是否包含传入的所有元素 时间复杂度 O(N*M),如果数据中的列表元素过多请使用 set 来替代

func (*List[T]) DeleteOne

func (l *List[T]) DeleteOne(e T)

DeleteOne 删除元素 e,至多删除一个,原地操作,时间复杂度 O(N)

func (*List[T]) Equal

func (l *List[T]) Equal(others []T) bool

func (*List[T]) IsEmpty

func (l *List[T]) IsEmpty() bool

func (*List[T]) Join

func (l *List[T]) Join(sep string) string

func (*List[T]) Len

func (l *List[T]) Len() int

func (*List[T]) ShallowCopy

func (l *List[T]) ShallowCopy() []T

func (*List[T]) Sort

func (l *List[T]) Sort(less func(a, b T) bool)

func (*List[T]) SortStable

func (l *List[T]) SortStable(less func(a, b T) bool)

func (*List[T]) String

func (l *List[T]) String() string

func (*List[T]) ToSet

func (l *List[T]) ToSet() *set.Set[T]

Jump to

Keyboard shortcuts

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