美文网首页
Go语言实现一键多值的Map

Go语言实现一键多值的Map

作者: 宋song一 | 来源:发表于2020-08-17 17:38 被阅读0次

Go语言实现一键多值的Map

package main

type Multimap map[string][]string

type keyValues struct {
       key    string
       values []string
}

func (multimap Multimap) Add(key, value string) {
       if len(multimap[key]) == 0 {
              multimap[key] = []string{value}
       } else {
              multimap[key] = append(multimap[key], value)
       }
}

func (multimap Multimap) Get(key string) []string {
       if multimap == nil {
              return nil
       }
       values := multimap[key]
       return values
}

func main() {
       var myMap Multimap
       myMap = make(Multimap);
       myMap.Add("黑龙江", "齐齐哈尔")
       myMap.Add("黑龙江", "哈尔滨")
       myMap.Add("黑龙江", "大庆")
       myMap.Add("辽宁", "大连")
       myMap.Add("辽宁", "沈阳")

       for key := range myMap {
              for j := 0; j < len(myMap[key]); j++ {
                     println(myMap[key][j])
              }
       }
}

对象切片作为map的值时,删除对象后,修改原map,需要将对象赋值给原map
myMap[i] = sli

相关文章

  • Go语言实现一键多值的Map

    Go语言实现一键多值的Map 对象切片作为map的值时,删除对象后,修改原map,需要将对象赋值给原mapmyMa...

  • Golang之Map源码

    引用 深入 Go 的 Map 使用和实现原理 哈希表 深度解密Go语言之map Golang map 的底层实现 使用

  • 第九章:Go语言映射类型map

    1. map概述 Go语言中map字典类型时散列表(hash table)的实现,因为Go语言中将map中的每个键...

  • 10.map

    Go语言基础之map | Golang Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现。 ...

  • Go语言高并发Map解决方案

    Go语言高并发Map解决方案 Go语言基础库中的map不是并发安全的,不过基于读写锁可以实现线程安全;不过在Go1...

  • Go语言——Map分析

    Go语言——Map分析 go\src\runtime\hashmap.go 简介 map就是一个hash表。数据被...

  • 2018-09-09

    语言基础(go)及生态 gorutine实现原理 gc channel 上下文管理器 map的底层实现,如何保证线...

  • go语言学习总结

    1、go语言的map和c++中的map有什么区别? go语言中的map是hash_table,和c++中uno...

  • go-map源码简单分析(map遍历为什么时随机的)

    GO 中map的底层是如何实现的 首先Go 语言采用的是哈希查找表,并且使用链表解决哈希冲突。 GO的内存模型 先...

  • golang map的底层实现

    golang map的底层实现 粗略的讲,Go语言中map采用的是哈希查找表,由一个key通过哈希函数得到哈希值,...

网友评论

      本文标题:Go语言实现一键多值的Map

      本文链接:https://www.haomeiwen.com/subject/gywqjktx.html