MST
星途 面试题库

面试题:Go中如何高效地初始化一个map并预分配内存

在Go语言中,map用于存储键值对。请描述如何高效地初始化一个map,尤其是在已知大概元素数量的情况下,怎样进行预分配内存以提升性能,并给出相应的代码示例。
27.8万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试

在Go语言中,当已知大概元素数量时,可以使用 make 函数并指定容量来预分配内存,以提升性能。

示例代码如下:

package main

import "fmt"

func main() {
    // 预分配大概100个元素的map
    m := make(map[string]int, 100) 
    m["key1"] = 1
    m["key2"] = 2

    fmt.Println(m)
}

在上述代码中,make(map[string]int, 100) 预分配了一个可以存储大约100个键值对的 map。这样做可以减少在插入元素时 map 动态扩容的次数,从而提升性能。如果不预分配内存,随着元素的不断插入,map 可能会频繁扩容,导致额外的性能开销。