2、go语言 标准容器

之前一直在用java,java中有比较完善的标准容器实现,对比着列举下go语言中的标准容器

1、数组

同java一样,数组中元素类型确定且相同,必须声明数组长度,而且长度固定不可变,可以使用下标的方式选择元素


go数组长度只能使用常量(数字或const声明的变量),不可以使用变量。
(c语言最开始的时候也是,后来编译器慢慢支持变量声明数组长度,不知道go以后会不会做变动)

1、数组声明:
var  name  [size] type
var name2 [size1][size2] type //二维数组
2、初始化数组:
var name = [5]int {1,2,3,4,5}
var name = [...]int {1,2,3,4,5}  // 使用...  go会按后面的元素个数确认数组大小
var name2 = [2][3] {{1,2,3},{4,5,6},}
3、访问元素,通过下标的方式
name[1]  // 访问name数组下标为1的元素
name2[3][2] // 访问name2数组第3行第2列的元素 

2、切片/Slice(类似java中的ArrayList)

相比较于数组,切片的使用率更高。

3、container/list(类似java中的LinkedList)(底层为双端链表,可以当队列或栈使用)
4、container/heap(类似java中的PriorityQueue)
5、container/ring
6、map(类似java中的HashMap)
7、go未提供set结构(java中的HashSet),所以只能自己实现(可以通过map实现)
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务