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  }