hash

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Aug 24, 2023 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AllExist

func AllExist[K comparable, V any](m map[K]V, keys ...K) bool

AllExist 检查多个 key 是否存在

func Clear added in v0.0.31

func Clear[K comparable, V any](m map[K]V)

Clear 清空 map

func Copy

func Copy[K comparable, V any](m map[K]V) map[K]V

Copy 复制一个map

func Exist

func Exist[K comparable, V any](m map[K]V, key K) bool

Exist 检查特定 key 是否存在

func KeyToSlice

func KeyToSlice[K comparable, V any](m map[K]V) []K

KeyToSlice 将 map 的 key 转换为切片

func RandomGet added in v0.0.9

func RandomGet[K comparable, V any](m map[K]V) (v V)

RandomGet 随机获取一个元素

func RandomGetKey added in v0.0.9

func RandomGetKey[K comparable, V any](m map[K]V) (k K)

RandomGetKey 随机获取一个 key

func RandomGetKeyN added in v0.0.9

func RandomGetKeyN[K comparable, V any](m map[K]V, n int) (ks []K)

RandomGetKeyN 随机获取 n 个 key

  • 获取到的元素不会是重复的,当 map 的长度不足 n 时,返回的元素等同于 hash.KeyToSlice

func RandomGetN added in v0.0.9

func RandomGetN[K comparable, V any](m map[K]V, n int) (vs []V)

RandomGetN 随机获取 n 个元素

  • 获取到的元素不会是重复的,当 map 的长度不足 n 时,返回的元素等同于 hash.ToSlice

func Reversal

func Reversal[K comparable, V comparable](m map[K]V) map[V]K

Reversal 将 map 的 key 和 value 互换

func Sum

func Sum[K comparable, V generic.Number](m map[K]V) V

Sum 计算一个 map 中的 value 总和

func ToIterator added in v0.0.13

func ToIterator[V comparable](slice []V) map[V]struct{}

ToIterator 将切片转换为 Iterator

func ToJson added in v0.0.4

func ToJson[K comparable, V any](m map[K]V) string

ToJson 将 map 转换为 json 字符串

func ToMap

func ToMap[V any](slice []V) map[int]V

ToMap 将切片转换为 map

func ToMapBool

func ToMapBool[V comparable](slice []V) map[V]bool

ToMapBool 将切片转换为 map,value作为Key

func ToSlice

func ToSlice[K comparable, V any](m map[K]V) []V

ToSlice 将 map 的 value 转换为切片

Types

type Consistency

type Consistency struct {
	// contains filtered or unexported fields
}

Consistency 一致性哈希生成

https://blog.csdn.net/zhpCSDN921011/article/details/126845397

func NewConsistency

func NewConsistency(replicas int) *Consistency

func (*Consistency) AddNode

func (slf *Consistency) AddNode(keys ...int)

AddNode 添加节点

func (*Consistency) PickNode

func (slf *Consistency) PickNode(key any) int

PickNode 获取与 key 最接近的节点

type Set added in v0.0.21

type Set[K comparable] map[K]struct{}

Set 集合

func NewSet added in v0.0.21

func NewSet[K comparable](ks ...K) Set[K]

NewSet 创建一个 Set 集合

func (Set[K]) Add added in v0.0.21

func (s Set[K]) Add(key K)

Add 添加元素

func (Set[K]) AddAll added in v0.0.21

func (s Set[K]) AddAll(keys ...K)

AddAll 添加多个元素

func (Set[K]) AllExist added in v0.0.21

func (s Set[K]) AllExist(keys ...K) bool

AllExist 检查多个 key 是否存在

func (Set[K]) Clear added in v0.0.21

func (s Set[K]) Clear()

Clear 清空集合

func (Set[K]) Exist added in v0.0.21

func (s Set[K]) Exist(key K) bool

Exist 检查特定 key 是否存在

func (Set[K]) RandomGet added in v0.0.21

func (s Set[K]) RandomGet() (k K)

RandomGet 随机获取一个元素

func (Set[K]) Remove added in v0.0.21

func (s Set[K]) Remove(key K)

Remove 移除元素

func (Set[K]) RemoveAll added in v0.0.21

func (s Set[K]) RemoveAll(keys ...K)

RemoveAll 移除多个元素

func (Set[K]) Size added in v0.0.21

func (s Set[K]) Size() int

Size 集合长度

func (Set[K]) ToJson added in v0.0.21

func (s Set[K]) ToJson() string

ToJson 转换为 json 字符串

func (Set[K]) ToMap added in v0.0.21

func (s Set[K]) ToMap() map[K]struct{}

ToMap 转换为 map

func (Set[K]) ToSlice added in v0.0.21

func (s Set[K]) ToSlice() []K

ToSlice 转换为切片

type SortMap

type SortMap[K comparable, V any] struct {
	// contains filtered or unexported fields
}

SortMap 有序的 map 实现

func NewSortMap

func NewSortMap[K comparable, V any]() *SortMap[K, V]

func ToSortMap

func ToSortMap[V any](slice []V) SortMap[int, V]

ToSortMap 将切片转换为 SortMap

func (*SortMap[K, V]) Del

func (slf *SortMap[K, V]) Del(key K)

func (*SortMap[K, V]) For

func (slf *SortMap[K, V]) For(handle func(key K, value V) bool)

func (*SortMap[K, V]) ForSort

func (slf *SortMap[K, V]) ForSort(handle func(key K, value V) bool)

func (*SortMap[K, V]) Get

func (slf *SortMap[K, V]) Get(key K) V

func (*SortMap[K, V]) KeyToSlice

func (slf *SortMap[K, V]) KeyToSlice() []K

func (*SortMap[K, V]) Set

func (slf *SortMap[K, V]) Set(key K, value V)

func (*SortMap[K, V]) ToMap

func (slf *SortMap[K, V]) ToMap() map[K]V

func (*SortMap[K, V]) ToSlice

func (slf *SortMap[K, V]) ToSlice() []V

func (*SortMap[K, V]) ToSliceSort

func (slf *SortMap[K, V]) ToSliceSort() []V

Jump to

Keyboard shortcuts

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