golang 无序的键值对集合map

这个demo很好。

package main

import "fmt"

func main() {
     /*创建集合并初始化 */
    countryCapitalMap := make(map[string]string)

    /* map插入key - value对,各个国家对应的首都 */
    countryCapitalMap [ "France" ] = "巴黎"
    countryCapitalMap [ "Italy" ] = "罗马"
    countryCapitalMap [ "Japan" ] = "东京"
    countryCapitalMap [ "India " ] = "新德里"

    /*使用键输出value值 */
    for country := range countryCapitalMap {
        fmt.Println(country, "首都是", countryCapitalMap [country])
    }

    /*查看元素在集合中是否存在 */
    capital, ok := countryCapitalMap [ "American" ] /*如果确定是真实的,则存在,否则不存在 */
    /*fmt.Println(capital) */
    /*fmt.Println(ok) */
    if (ok) {
        fmt.Println("American 的首都是", capital)
    } else {
        fmt.Println("American 的首都不存在")
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Golang中的map超过其容量限制时,会发生什么情况?首先,需要理解Golangmap的工作原理。Golangmap是一种无序键值对集合,可以通过键来访问对应的值。map的容量是指用于存储键值对的内存空间大小。 当map键值对数量超过了其容量限制时,Golang会自动进行扩容操作。扩容会创建一个更大的内存空间用于存储键值对,然后将原有的键值对重新散列到新的内存空间中。这个过程会导致一定的性能开销,因为所有的键值对需要重新计算散列值并存储到新的内存空间。 在扩容过程中,Golang会根据当前map的负载因子来决定扩容的大小。负载因子是指已经存储的键值对数量与容量之比,当负载因子超过阈值时,就会触发扩容操作。在扩容过程中,Golang会选择一个合适的新容量,并重新计算散列函数和散列桶的数量。 需要注意的是,如果map中存在大量的键值对,在扩容时可能会占用较多的内存空间,并可能导致更长的扩容时间。因此,在设计使用map时,应根据业务需求和系统资源情况,合理设置map的初始容量,以尽量避免扩容操作带来的性能损耗。 综上所述,当Golangmap超过容量时,会自动进行扩容操作。扩容会创建一个更大的内存空间,并将原有的键值对重新散列到新的内存空间中。扩容过程可能会带来一定的性能开销,因此在设计使用map时需要合理设置初始容量来减少扩容的次数和影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值