github.com/gogf/gf@v1.16.9/.example/container/garray/sorted_array_basic.go (about) 1 package main 2 3 import ( 4 "fmt" 5 6 "github.com/gogf/gf/container/garray" 7 ) 8 9 func main() { 10 // 自定义排序数组,降序排序(SortedIntArray管理的数据是升序) 11 a := garray.NewSortedArray(func(v1, v2 interface{}) int { 12 if v1.(int) < v2.(int) { 13 return 1 14 } 15 if v1.(int) > v2.(int) { 16 return -1 17 } 18 return 0 19 }) 20 21 // 添加数据 22 a.Add(2) 23 a.Add(3) 24 a.Add(1) 25 fmt.Println(a.Slice()) 26 27 // 添加重复数据 28 a.Add(3) 29 fmt.Println(a.Slice()) 30 31 // 检索数据,返回最后对比的索引位置,检索结果 32 // 检索结果:0: 匹配; <0:参数小于对比值; >0:参数大于对比值 33 fmt.Println(a.Search(1)) 34 35 // 设置不可重复 36 a.SetUnique(true) 37 fmt.Println(a.Slice()) 38 a.Add(1) 39 fmt.Println(a.Slice()) 40 }