基本介绍

支持并发安全开关特性的树形容器,树形数据结构的特点是支持有序遍历、内存占用低、复杂度稳定、适合大数据量存储。该模块包含多个数据结构的树形容器:RedBlackTreeAVLTreeBTree

类型数据结构平均复杂度支持排序有序遍历说明
RedBlackTree红黑树O(log N)写入性能比较好
AVLTree高度平衡树O(log N)查找性能比较好
BTreeB树/B-树O(log N)常用于外部存储

参考连接:https://en.wikipedia.org/wiki/Binary_tree

使用场景

关联数组场景、排序键值对场景、大数据量内存CURD场景等等。

使用方式

import "github.com/gogf/gf/v2/container/gtree"

接口文档

https://pkg.go.dev/github.com/gogf/gf/v2/container/gtree

几种容器的API方法都非常类似,特点是需要在初始化时提供用于排序的方法。

gutil模块中提供了常用的一些基本类型比较方法,可以直接在程序中直接使用,后续也有示例。

func ComparatorByte(a, b interface{}) int
func ComparatorFloat32(a, b interface{}) int
func ComparatorFloat64(a, b interface{}) int
func ComparatorInt(a, b interface{}) int
func ComparatorInt16(a, b interface{}) int
func ComparatorInt32(a, b interface{}) int
func ComparatorInt64(a, b interface{}) int
func ComparatorInt8(a, b interface{}) int
func ComparatorRune(a, b interface{}) int
func ComparatorString(a, b interface{}) int
func ComparatorTime(a, b interface{}) int
func ComparatorUint(a, b interface{}) int
func ComparatorUint16(a, b interface{}) int
func ComparatorUint32(a, b interface{}) int
func ComparatorUint64(a, b interface{}) int
func ComparatorUint8(a, b interface{}) int

相关文档





Content Menu

  • No labels

8 Comments

  1.  gtree和gconv现在改成了接口方式,  想不出这种抽象的需求是啥, gf以后会不会越来越的组件都这样搞, 表示很担心为了抽象而抽象.  

  2. 另外一个, 现在改成最低要求1.20, 这也是win7所能支持的最低版本. 建议别着急继续往上加版本号. 中国的国情摆在这, 大批量的win7用户. 每个几年都不会消亡.  我现在用一些库都会先看看他是不是1.20以下. 

    1. 有一个很奇怪的问题, 好像go的开发者多数都觉得go只适合开发网站或者api, 做不了win桌面软件. 好奇怪... 

      1. 因为GUI生态不行(fyne丑,wails要全栈),做服务端也只是其中一种使用方式.至于版本号肯定是随大流,升级系统就完事了.

        1. 肯定有低版本的需求群体.  gf这种框架, 没有什么理由一定要高版本的go环境. 

          还有一个,  我如果用gf开发的exe,  面向的是广大用户,  我也没法强迫所有的用户升级win7系统. 


          1. 以前的XP也是这么过来的.低于最新版本两个版本号算是非常克制的结果了.

        2. 比如, 马化腾要求所有人想要用微信, 比如win10系统以上, 这不大现实对吧. 

        3. 表示wails很香,  用百度的amis开源的, 甚至都不用写js代码. 

          fyne不给力, 如果需要win原生的UI, 还可以看看"炫彩UI",  这个开发win界面, 效果杠杠, 有go版本, 同时还有可视化拖拽功能.  越用越喜欢.