新聞中心
這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)GoFrame教程:GoFramegtree-基本使用
基本使用
package main
import (
"fmt"
"github.com/GOgf/gf/v2/container/gtree"
"github.com/gogf/gf/v2/util/gutil"
)
func main() {
m := gtree.NewRedBlackTree(gutil.ComparatorInt)
// 設(shè)置鍵值對(duì)
for i := 0; i < 10; i++ {
m.Set(i, i*10)
}
// 查詢大小
fmt.Println(m.Size())
// 批量設(shè)置鍵值對(duì)(不同的數(shù)據(jù)類型對(duì)象參數(shù)不同)
m.Sets(map[interface{}]interface{}{
10: 10,
11: 11,
})
fmt.Println(m.Size())
// 查詢是否存在
fmt.Println(m.Contains(1))
// 查詢鍵值
fmt.Println(m.Get(1))
// 刪除數(shù)據(jù)項(xiàng)
m.Remove(9)
fmt.Println(m.Size())
// 批量刪除
m.Removes([]interface{}{10, 11})
fmt.Println(m.Size())
// 當(dāng)前鍵名列表(隨機(jī)排序)
fmt.Println(m.Keys())
// 當(dāng)前鍵值列表(隨機(jī)排序)
fmt.Println(m.Values())
// 查詢鍵名,當(dāng)鍵值不存在時(shí),寫(xiě)入給定的默認(rèn)值
fmt.Println(m.GetOrSet(100, 100))
// 刪除鍵值對(duì),并返回對(duì)應(yīng)的鍵值
fmt.Println(m.Remove(100))
// 遍歷map
m.IteratorAsc(func(k interface{}, v interface{}) bool {
fmt.Printf("%v:%v ", k, v)
return true
})
fmt.Println()
// 清空map
m.Clear()
// 判斷map是否為空
fmt.Println(m.IsEmpty())
}執(zhí)行后,輸出結(jié)果為:

成都創(chuàng)新互聯(lián)公司是一家企業(yè)級(jí)云計(jì)算解決方案提供商,超15年IDC數(shù)據(jù)中心運(yùn)營(yíng)經(jīng)驗(yàn)。主營(yíng)GPU顯卡服務(wù)器,站群服務(wù)器,服務(wù)器托管,海外高防服務(wù)器,服務(wù)器機(jī)柜,動(dòng)態(tài)撥號(hào)VPS,海外云手機(jī),海外云服務(wù)器,海外服務(wù)器租用托管等。
10
12
true
10
11
9
[0 1 2 3 4 5 6 7 8]
[0 10 20 30 40 50 60 70 80]
100
100
0:0 1:10 2:20 3:30 4:40 5:50 6:60 7:70 8:80
true
前序/后續(xù)遍歷
package main
import (
"fmt"
"github.com/gogf/gf/v2/container/gtree"
"github.com/gogf/gf/v2/util/gutil"
)
func main() {
tree := gtree.NewAVLTree(gutil.ComparatorInt)
for i := 0; i < 10; i++ {
tree.Set(i, i*10)
}
// 打印樹(shù)形
tree.Print()
// 前序遍歷
fmt.Println("ASC:")
tree.IteratorAsc(func(key, value interface{}) bool {
fmt.Println(key, value)
return true
})
// 后續(xù)遍歷
fmt.Println("DESC:")
tree.IteratorDesc(func(key, value interface{}) bool {
fmt.Println(key, value)
return true
})
}執(zhí)行后,輸出結(jié)果為:
AVLTree
│ ┌── 9
│ ┌── 8
│ ┌── 7
│ │ │ ┌── 6
│ │ └── 5
│ │ └── 4
└── 3
│ ┌── 2
└── 1
└── 0
ASC:
0 0
1 10
2 20
3 30
4 40
5 50
6 60
7 70
8 80
9 90
DESC:
9 90
8 80
7 70
6 60
5 50
4 40
3 30
2 20
1 10
0 0 當(dāng)前名稱:創(chuàng)新互聯(lián)GoFrame教程:GoFramegtree-基本使用
本文地址:http://fisionsoft.com.cn/article/dhehiej.html


咨詢
建站咨詢
