支持并发安全开关选项的map容器,最常用的数据结构。该模块包含多个数据结构的map容器:HashMap
、TreeMap
和ListMap
。
类型
|
数据结构
|
平均复杂度
|
支持排序
|
有序遍历
|
说明
|
---|---|---|---|---|---|
HashMap
|
哈希表 | O(1)
|
否 | 否 | 高性能读写操作,内存占用较高,随机遍历 |
ListMap
|
哈希表+双向链表 | O(2)
|
否 | 是 | 支持按照写入顺序遍历,内存占用较高 |
TreeMap
|
红黑树 | O(log N)
|
是 | 是 | 内存占用紧凑,支持键名排序及有序遍历 |
此外,gmap
模块支持多种以哈希表为基础数据结构的常见类型map定义:IntIntMap
、IntStrMap
、IntAnyMap
、StrIntMap
、StrStrMap
、StrAnyMap
。
使用场景:
任何map
/哈希表/关联数组使用场景,尤其是并发安全场景中。
使用方式:
import "github.com/gogf/gf/v2/container/gmap"
接口文档:
https://pkg.go.dev/github.com/gogf/gf/v2/container/gmap
基本介绍动态大小的并发安全队列。同时,gqueue也支持固定队列大小,固定队列大小时队列效率和标准库的channel无异。使...
约瑟夫问题我们使用ring来模拟一下约瑟夫问题:著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后,39个犹太...
gcron与gtimer区别定时任务-gcron与定时器-gtimer区别:gtimer属于高性能模块,是框架核心模块,构建任何定时任务的基础,任...
要从数据库检索对象,要通过模型类的 Manager 构建一个 QuerySet。一个 QuerySet 代表来自数据库中对象的一个集合。它可...