关于 `map[string]string` 和 `map[string]map[string]string` 的抉择

数据字段:shop>member>name(都是string
假设有10万左右shop,每个shop有1千左右member
以下两个方案哪个更优呢

// ShopMemberName1 方案一
type ShopMemberName1 map[string]string
func (m ShopMemberName1) GetMemberName(shop string,member string) (string,bool) {
    name,ok:= m[shop+member]
    return name,ok
}

// ShopMemberName2 方案二
type ShopMemberName2 map[string]map[string]string
func (m ShopMemberName2) GetMemberName(shop string,member string) (string,bool) {
    if sm,ok:=m[shop];ok{
        name,ok:= sm[member]
        return name,ok
    }
    return "",false
}
世界最好语言的追随者
最佳答案

虽然 map[string]string 结构在内存占用上可能更小,但是后续的删除可能影响,比如我要删掉某 member 全部。另外就是考虑哈希冲突会不会变多。

方案2, map[string]map[string]string 更加灵活直观一些,去增加 member ,修改 member 都会更方便吧

4个月前 评论
renxiaotu (楼主) 4个月前
Tacks (作者) 4个月前
renxiaotu (楼主) 4个月前
讨论数量: 4

虽然 map[string]string 结构在内存占用上可能更小,但是后续的删除可能影响,比如我要删掉某 member 全部。另外就是考虑哈希冲突会不会变多。

方案2, map[string]map[string]string 更加灵活直观一些,去增加 member ,修改 member 都会更方便吧

4个月前 评论
renxiaotu (楼主) 4个月前
Tacks (作者) 4个月前
renxiaotu (楼主) 4个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!