Documentation
¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Keys ¶
func Keys[K comparable, V any](m map[K]V) []K
Keys 返回 map 里面的所有的 key。 需要注意:这些 key 的顺序是随机。
func KeysValues ¶
func KeysValues[K comparable, V any](m map[K]V) ([]K, []V)
KeysValues 返回 map 里面的所有的 key,value。 需要注意:这些 (key,value) 的顺序是随机,相对顺序是一致的。
func Values ¶
func Values[K comparable, V any](m map[K]V) []V
Values 返回 map 里面的所有的 value。 需要注意:这些 value 的顺序是随机。
Types ¶
type HashMap ¶
func NewHashMap ¶
Example ¶
package main import ( "fmt" "github.com/gotomicro/ekit/mapx" ) func main() { m := mapx.NewHashMap[MockKey, int](10) _ = m.Put(MockKey{}, 123) val, _ := m.Get(MockKey{}) fmt.Println(val) } type MockKey struct { values []int } func (m MockKey) Code() uint64 { res := 3 for _, v := range m.values { res += v * 7 } return uint64(res) } func (m MockKey) Equals(key any) bool { k, ok := key.(MockKey) if !ok { return false } if len(k.values) != len(m.values) { return false } if k.values == nil && m.values != nil { return false } if k.values != nil && m.values == nil { return false } for i, v := range m.values { if v != k.values[i] { return false } } return true }
Output: 123
type TreeMap ¶
TreeMap 是基于红黑树实现的Map
func NewTreeMap ¶
NewTreeMap TreeMap构造方法,创建一个的TreeMap 需注意比较器compare不能为nil
Example ¶
package main import ( "fmt" "github.com/gotomicro/ekit" "github.com/gotomicro/ekit/mapx" ) func main() { m, _ := mapx.NewTreeMap[int, int](ekit.ComparatorRealNumber[int]) _ = m.Put(1, 11) val, _ := m.Get(1) fmt.Println(val) }
Output: 11
func NewTreeMapWithMap ¶
func NewTreeMapWithMap[K comparable, V any](compare ekit.Comparator[K], m map[K]V) (*TreeMap[K, V], error)
NewTreeMapWithMap TreeMap构造方法 支持通过传入的map构造生成TreeMap
Click to show internal directories.
Click to hide internal directories.