1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-06 21:52:28 +08:00
Files
lancet/docs/datastructure/hashmap_zh-CN.md
2022-08-26 16:29:55 +08:00

3.1 KiB
Raw Blame History

HashMap

HashMap 数据结构实现

源码

用法

import (
    hashmap "github.com/duke-git/lancet/v2/datastructure/hashmap"
)

目录

API 文档

NewHashMap

新建默认容量1 << 10的HashMap指针实例

函数签名:

func NewHashMap() *HashMap

例子:

package main

import (
    "fmt"
    hashmap "github.com/duke-git/lancet/v2/datastructure/hashmap"
)

func main() {
    hm := heap.NewHashMap()
    fmt.Println(hm)
}

NewHashMapWithCapacity

新建指定容量和长度的HashMap指针实例.

函数签名:

func NewHashMapWithCapacity(size, capacity uint64) *HashMap

例子:

package main

import (
    "fmt"
    hashmap "github.com/duke-git/lancet/v2/datastructure/hashmap"
)

func main() {
    hm := heap.NewHashMapWithCapacity(uint64(100), uint64(1000))
    fmt.Println(hm)
}

Get

在hashmap中根据key获取值

函数签名:

func (hm *HashMap) Get(key any) any

例子:

package main

import (
    "fmt"
    hashmap "github.com/duke-git/lancet/v2/datastructure/hashmap"
)

func main() {
    hm := heap.NewHashMap()
    val := hm.Get("a")

    fmt.Println(val) //nil
}

Put

将key-value放入hashmap中

函数签名:

func (hm *HashMap) Put(key any, value any) any

例子:

package main

import (
    "fmt"
    hashmap "github.com/duke-git/lancet/v2/datastructure/hashmap"
)

func main() {
    hm := heap.NewHashMap()
    hm.Put("a", 1)

    val := hm.Get("a")
    fmt.Println(val) //1
}

Delete

将指定的key从hashmap中删除

函数签名:

func (hm *HashMap) Delete(key any)

例子:

package main

import (
    "fmt"
    hashmap "github.com/duke-git/lancet/v2/datastructure/hashmap"
)

func main() {
    hm := heap.NewHashMap()
    hm.Put("a", 1)
    val := hm.Get("a")
    fmt.Println(val) //1

    hm.Delete("a")
    val = hm.Get("a")
    fmt.Println(val) //nil
}

Contains

判断hashmap中是否包含指定的key

函数签名:

func (hm *HashMap) Contains(key any) bool

例子:

package main

import (
    "fmt"
    hashmap "github.com/duke-git/lancet/v2/datastructure/hashmap"
)

func main() {
    hm := heap.NewHashMap()
    hm.Put("a", 1)

    fmt.Println(hm.Contains("a")) //true
    fmt.Println(hm.Contains("b")) //false
}