关于 `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
都会更方便吧