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.