garray

package
v1.6.14 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 22, 2019 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package garray provides concurrent-safe/unsafe arrays.

Example (Basic)
package main

import (
	"fmt"
	"github.com/gogf/gf/g/container/garray"
)

func main() {
	// 创建普通的数组,默认并发安全(带锁)
	a := garray.New()

	// 添加数据项
	for i := 0; i < 10; i++ {
		a.Append(i)
	}

	// 获取当前数组长度
	fmt.Println(a.Len())

	// 获取当前数据项列表
	fmt.Println(a.Slice())

	// 获取指定索引项
	fmt.Println(a.Get(6))

	// 查找指定数据项是否存在
	fmt.Println(a.Contains(6))
	fmt.Println(a.Contains(100))

	// 在指定索引前插入数据项
	a.InsertAfter(9, 11)
	// 在指定索引后插入数据项
	a.InsertBefore(10, 10)

	fmt.Println(a.Slice())

	// 修改指定索引的数据项
	a.Set(0, 100)
	fmt.Println(a.Slice())

	// 搜索数据项,返回搜索到的索引位置
	fmt.Println(a.Search(5))

	// 删除指定索引的数据项
	a.Remove(0)
	fmt.Println(a.Slice())

	// 清空数组
	fmt.Println(a.Slice())
	a.Clear()
	fmt.Println(a.Slice())

}
Output:

10
[0 1 2 3 4 5 6 7 8 9]
6
true
false
[0 1 2 3 4 5 6 7 8 9 10 11]
[100 1 2 3 4 5 6 7 8 9 10 11]
5
[1 2 3 4 5 6 7 8 9 10 11]
[1 2 3 4 5 6 7 8 9 10 11]
[]
Example (Merge)
package main

import (
	"fmt"
	"github.com/gogf/gf/g/container/garray"
)

func main() {
	array1 := garray.NewFrom([]interface{}{1, 2})
	array2 := garray.NewFrom([]interface{}{3, 4})
	slice1 := []interface{}{5, 6}
	slice2 := []int{7, 8}
	slice3 := []string{"9", "0"}
	fmt.Println(array1.Slice())
	array1.Merge(array1)
	array1.Merge(array2)
	array1.Merge(slice1)
	array1.Merge(slice2)
	array1.Merge(slice3)
	fmt.Println(array1.Slice())

}
Output:

[1 2]
[1 2 1 2 3 4 5 6 7 8 9 0]
Example (Pop)
package main

import (
	"fmt"
	"github.com/gogf/gf/g/container/garray"
)

func main() {
	array := garray.NewFrom([]interface{}{1, 2, 3, 4, 5, 6, 7, 8, 9})
	fmt.Println(array.PopLeft())
	fmt.Println(array.PopLefts(2))
	fmt.Println(array.PopRight())
	fmt.Println(array.PopRights(2))

}
Output:

1
[2 3]
9
[7 8]
Example (Rand)
package main

import (
	"fmt"
	"github.com/gogf/gf/g/container/garray"
)

func main() {
	array := garray.NewFrom([]interface{}{1, 2, 3, 4, 5, 6, 7, 8, 9})
	// 随机返回两个数据项(不删除)
	fmt.Println(array.Rands(2))
	fmt.Println(array.PopRand())
}
Output:

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Array

type Array struct {
	// contains filtered or unexported fields
}

func New

func New(unsafe ...bool) *Array

New creates and returns an empty array. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func NewArray

func NewArray(unsafe ...bool) *Array

See New.

func NewArrayFrom

func NewArrayFrom(array []interface{}, unsafe ...bool) *Array

NewArrayFrom creates and returns an array with given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func NewArrayFromCopy

func NewArrayFromCopy(array []interface{}, unsafe ...bool) *Array

NewArrayFromCopy creates and returns an array from a copy of given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func NewArraySize

func NewArraySize(size int, cap int, unsafe ...bool) *Array

NewArraySize create and returns an array with given size and cap. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func NewFrom

func NewFrom(array []interface{}, unsafe ...bool) *Array

See NewArrayFrom.

func NewFromCopy

func NewFromCopy(array []interface{}, unsafe ...bool) *Array

See NewArrayFromCopy.

func (*Array) Append

func (a *Array) Append(value ...interface{}) *Array

See PushRight.

func (*Array) Chunk

func (a *Array) Chunk(size int) [][]interface{}

Chunk splits an array into multiple arrays, the size of each array is determined by <size>. The last chunk may contain less than size elements.

func (*Array) Clear

func (a *Array) Clear() *Array

Clear deletes all items of current array.

func (*Array) Clone

func (a *Array) Clone() (newArray *Array)

Clone returns a new array, which is a copy of current array.

func (*Array) Contains

func (a *Array) Contains(value interface{}) bool

Contains checks whether a value exists in the array.

func (*Array) CountValues

func (a *Array) CountValues() map[interface{}]int

CountValues counts the number of occurrences of all values in the array.

func (*Array) Fill

func (a *Array) Fill(startIndex int, num int, value interface{}) *Array

Fill fills an array with num entries of the value <value>, keys starting at the <startIndex> parameter.

func (*Array) Get

func (a *Array) Get(index int) interface{}

Get returns the value of the specified index, the caller should notice the boundary of the array.

func (*Array) InsertAfter

func (a *Array) InsertAfter(index int, value interface{}) *Array

InsertAfter inserts the <value> to the back of <index>.

func (*Array) InsertBefore

func (a *Array) InsertBefore(index int, value interface{}) *Array

InsertBefore inserts the <value> to the front of <index>.

func (*Array) Join

func (a *Array) Join(glue string) string

Join joins array elements with a string <glue>.

func (*Array) Len

func (a *Array) Len() int

Len returns the length of array.

func (*Array) LockFunc

func (a *Array) LockFunc(f func(array []interface{})) *Array

LockFunc locks writing by callback function <f>.

func (*Array) Merge

func (a *Array) Merge(array interface{}) *Array

Merge merges <array> into current array. The parameter <array> can be any garray or slice type. The difference between Merge and Append is Append supports only specified slice type, but Merge supports more parameter types.

func (*Array) Pad

func (a *Array) Pad(size int, val interface{}) *Array

Pad pads array to the specified length with <value>. If size is positive then the array is padded on the right, or negative on the left. If the absolute value of <size> is less than or equal to the length of the array then no padding takes place.

func (*Array) PopLeft

func (a *Array) PopLeft() interface{}

PopLeft pops and returns an item from the beginning of array.

func (*Array) PopLefts

func (a *Array) PopLefts(size int) []interface{}

PopLefts pops and returns <size> items from the beginning of array.

func (*Array) PopRand

func (a *Array) PopRand() interface{}

PopRand randomly pops and return an item out of array.

func (*Array) PopRands

func (a *Array) PopRands(size int) []interface{}

PopRands randomly pops and returns <size> items out of array.

func (*Array) PopRight

func (a *Array) PopRight() interface{}

PopRight pops and returns an item from the end of array.

func (*Array) PopRights

func (a *Array) PopRights(size int) []interface{}

PopRights pops and returns <size> items from the end of array.

func (*Array) PushLeft

func (a *Array) PushLeft(value ...interface{}) *Array

PushLeft pushes one or multiple items to the beginning of array.

func (*Array) PushRight

func (a *Array) PushRight(value ...interface{}) *Array

PushRight pushes one or multiple items to the end of array. It equals to Append.

func (*Array) RLockFunc

func (a *Array) RLockFunc(f func(array []interface{})) *Array

RLockFunc locks reading by callback function <f>.

func (*Array) Rand

func (a *Array) Rand() interface{}

Rand randomly returns one item from array(no deleting).

func (*Array) Rands

func (a *Array) Rands(size int) []interface{}

Rands randomly returns <size> items from array(no deleting).

func (*Array) Range

func (a *Array) Range(start, end int) []interface{}

Range picks and returns items by range, like array[start:end]. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.

func (*Array) Remove

func (a *Array) Remove(index int) interface{}

Remove removes an item by index.

func (*Array) Replace

func (a *Array) Replace(array []interface{}) *Array

Replace replaces the array items by given <array> from the beginning of array.

func (*Array) Reverse

func (a *Array) Reverse() *Array

Reverse makes array with elements in reverse order.

func (*Array) Search

func (a *Array) Search(value interface{}) int

Search searches array by <value>, returns the index of <value>, or returns -1 if not exists.

func (*Array) Set

func (a *Array) Set(index int, value interface{}) *Array

Set sets value to specified index.

func (*Array) SetArray

func (a *Array) SetArray(array []interface{}) *Array

SetArray sets the underlying slice array with the given <array>.

func (*Array) Shuffle

func (a *Array) Shuffle() *Array

Shuffle randomly shuffles the array.

func (*Array) Slice

func (a *Array) Slice() []interface{}

Slice returns the underlying data of array. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.

func (*Array) SortFunc

func (a *Array) SortFunc(less func(v1, v2 interface{}) bool) *Array

SortFunc sorts the array by custom function <less>.

func (*Array) String

func (a *Array) String() string

String returns current array as a string.

func (*Array) SubSlice

func (a *Array) SubSlice(offset, size int) []interface{}

SubSlice returns a slice of elements from the array as specified by the <offset> and <size> parameters. If in concurrent safe usage, it returns a copy of the slice; else a pointer.

func (*Array) Sum

func (a *Array) Sum() (sum int)

Sum returns the sum of values in an array.

func (*Array) Unique

func (a *Array) Unique() *Array

Unique uniques the array, clear repeated items.

type IntArray

type IntArray struct {
	// contains filtered or unexported fields
}

func NewIntArray

func NewIntArray(unsafe ...bool) *IntArray

NewIntArray creates and returns an empty array. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func NewIntArrayFrom

func NewIntArrayFrom(array []int, unsafe ...bool) *IntArray

NewIntArrayFrom creates and returns an array with given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func NewIntArrayFromCopy

func NewIntArrayFromCopy(array []int, unsafe ...bool) *IntArray

NewIntArrayFromCopy creates and returns an array from a copy of given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func NewIntArraySize

func NewIntArraySize(size int, cap int, unsafe ...bool) *IntArray

NewIntArraySize create and returns an array with given size and cap. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func (*IntArray) Append

func (a *IntArray) Append(value ...int) *IntArray

See PushRight.

func (*IntArray) Chunk

func (a *IntArray) Chunk(size int) [][]int

Chunk splits an array into multiple arrays, the size of each array is determined by <size>. The last chunk may contain less than size elements.

func (*IntArray) Clear

func (a *IntArray) Clear() *IntArray

Clear deletes all items of current array.

func (*IntArray) Clone

func (a *IntArray) Clone() (newArray *IntArray)

Clone returns a new array, which is a copy of current array.

func (*IntArray) Contains

func (a *IntArray) Contains(value int) bool

Contains checks whether a value exists in the array.

func (*IntArray) CountValues

func (a *IntArray) CountValues() map[int]int

CountValues counts the number of occurrences of all values in the array.

func (*IntArray) Fill

func (a *IntArray) Fill(startIndex int, num int, value int) *IntArray

Fill fills an array with num entries of the value <value>, keys starting at the <startIndex> parameter.

func (*IntArray) Get

func (a *IntArray) Get(index int) int

Get returns the value of the specified index, the caller should notice the boundary of the array.

func (*IntArray) InsertAfter

func (a *IntArray) InsertAfter(index int, value int) *IntArray

InsertAfter inserts the <value> to the back of <index>.

func (*IntArray) InsertBefore

func (a *IntArray) InsertBefore(index int, value int) *IntArray

InsertBefore inserts the <value> to the front of <index>.

func (*IntArray) Join

func (a *IntArray) Join(glue string) string

Join joins array elements with a string <glue>.

func (*IntArray) Len

func (a *IntArray) Len() int

Len returns the length of array.

func (*IntArray) LockFunc

func (a *IntArray) LockFunc(f func(array []int)) *IntArray

LockFunc locks writing by callback function <f>.

func (*IntArray) Merge

func (a *IntArray) Merge(array interface{}) *IntArray

Merge merges <array> into current array. The parameter <array> can be any garray or slice type. The difference between Merge and Append is Append supports only specified slice type, but Merge supports more parameter types.

func (*IntArray) Pad

func (a *IntArray) Pad(size int, value int) *IntArray

Pad pads array to the specified length with <value>. If size is positive then the array is padded on the right, or negative on the left. If the absolute value of <size> is less than or equal to the length of the array then no padding takes place.

func (*IntArray) PopLeft

func (a *IntArray) PopLeft() int

PopLeft pops and returns an item from the beginning of array.

func (*IntArray) PopLefts

func (a *IntArray) PopLefts(size int) []int

PopLefts pops and returns <size> items from the beginning of array.

func (*IntArray) PopRand

func (a *IntArray) PopRand() int

PopRand randomly pops and return an item out of array.

func (*IntArray) PopRands

func (a *IntArray) PopRands(size int) []int

PopRands randomly pops and returns <size> items out of array.

func (*IntArray) PopRight

func (a *IntArray) PopRight() int

PopRight pops and returns an item from the end of array.

func (*IntArray) PopRights

func (a *IntArray) PopRights(size int) []int

PopRights pops and returns <size> items from the end of array.

func (*IntArray) PushLeft

func (a *IntArray) PushLeft(value ...int) *IntArray

PushLeft pushes one or multiple items to the beginning of array.

func (*IntArray) PushRight

func (a *IntArray) PushRight(value ...int) *IntArray

PushRight pushes one or multiple items to the end of array. It equals to Append.

func (*IntArray) RLockFunc

func (a *IntArray) RLockFunc(f func(array []int)) *IntArray

RLockFunc locks reading by callback function <f>.

func (*IntArray) Rand

func (a *IntArray) Rand() int

Rand randomly returns one item from array(no deleting).

func (*IntArray) Rands

func (a *IntArray) Rands(size int) []int

Rands randomly returns <size> items from array(no deleting).

func (*IntArray) Range

func (a *IntArray) Range(start, end int) []int

Range picks and returns items by range, like array[start:end]. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.

func (*IntArray) Remove

func (a *IntArray) Remove(index int) int

Remove removes an item by index.

func (*IntArray) Replace

func (a *IntArray) Replace(array []int) *IntArray

Replace replaces the array items by given <array> from the beginning of array.

func (*IntArray) Reverse

func (a *IntArray) Reverse() *IntArray

Reverse makes array with elements in reverse order.

func (*IntArray) Search

func (a *IntArray) Search(value int) int

Search searches array by <value>, returns the index of <value>, or returns -1 if not exists.

func (*IntArray) Set

func (a *IntArray) Set(index int, value int) *IntArray

Set sets value to specified index.

func (*IntArray) SetArray

func (a *IntArray) SetArray(array []int) *IntArray

SetArray sets the underlying slice array with the given <array>.

func (*IntArray) Shuffle

func (a *IntArray) Shuffle() *IntArray

Shuffle randomly shuffles the array.

func (*IntArray) Slice

func (a *IntArray) Slice() []int

Slice returns the underlying data of array. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.

func (*IntArray) Sort

func (a *IntArray) Sort(reverse ...bool) *IntArray

Sort sorts the array in increasing order. The param <reverse> controls whether sort in increasing order(default) or decreasing order

func (*IntArray) SortFunc

func (a *IntArray) SortFunc(less func(v1, v2 int) bool) *IntArray

SortFunc sorts the array by custom function <less>.

func (*IntArray) String

func (a *IntArray) String() string

String returns current array as a string.

func (*IntArray) SubSlice

func (a *IntArray) SubSlice(offset, size int) []int

SubSlice returns a slice of elements from the array as specified by the <offset> and <size> parameters. If in concurrent safe usage, it returns a copy of the slice; else a pointer.

func (*IntArray) Sum

func (a *IntArray) Sum() (sum int)

Sum returns the sum of values in an array.

func (*IntArray) Unique

func (a *IntArray) Unique() *IntArray

Unique uniques the array, clear repeated items.

type SortedArray

type SortedArray struct {
	// contains filtered or unexported fields
}

It's using increasing order in default.

func NewSortedArray

func NewSortedArray(comparator func(v1, v2 interface{}) int, unsafe ...bool) *SortedArray

NewSortedArray creates and returns an empty sorted array. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default. The param <comparator> used to compare values to sort in array, if it returns value < 0, means v1 < v2; if it returns value = 0, means v1 = v2; if it returns value > 0, means v1 > v2;

func NewSortedArrayFrom

func NewSortedArrayFrom(array []interface{}, comparator func(v1, v2 interface{}) int, unsafe ...bool) *SortedArray

NewSortedArrayFrom creates and returns an sorted array with given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func NewSortedArrayFromCopy

func NewSortedArrayFromCopy(array []interface{}, unsafe ...bool) *SortedArray

NewSortedArrayFromCopy creates and returns an sorted array from a copy of given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func NewSortedArraySize

func NewSortedArraySize(cap int, comparator func(v1, v2 interface{}) int, unsafe ...bool) *SortedArray

NewSortedArraySize create and returns an sorted array with given size and cap. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func (*SortedArray) Add

func (a *SortedArray) Add(values ...interface{}) *SortedArray

Add adds one or multiple values to sorted array, the array always keeps sorted.

func (*SortedArray) Chunk

func (a *SortedArray) Chunk(size int) [][]interface{}

Chunk splits an array into multiple arrays, the size of each array is determined by <size>. The last chunk may contain less than size elements.

func (*SortedArray) Clear

func (a *SortedArray) Clear() *SortedArray

Clear deletes all items of current array.

func (*SortedArray) Clone

func (a *SortedArray) Clone() (newArray *SortedArray)

Clone returns a new array, which is a copy of current array.

func (*SortedArray) Contains

func (a *SortedArray) Contains(value interface{}) bool

Contains checks whether a value exists in the array.

func (*SortedArray) CountValues

func (a *SortedArray) CountValues() map[interface{}]int

CountValues counts the number of occurrences of all values in the array.

func (*SortedArray) Get

func (a *SortedArray) Get(index int) interface{}

Get returns the value of the specified index, the caller should notice the boundary of the array.

func (*SortedArray) Join

func (a *SortedArray) Join(glue string) string

Join joins array elements with a string <glue>.

func (*SortedArray) Len

func (a *SortedArray) Len() int

Len returns the length of array.

func (*SortedArray) LockFunc

func (a *SortedArray) LockFunc(f func(array []interface{})) *SortedArray

LockFunc locks writing by callback function <f>.

func (*SortedArray) Merge

func (a *SortedArray) Merge(array interface{}) *SortedArray

Merge merges <array> into current array. The parameter <array> can be any garray or slice type. The difference between Merge and Append is Append supports only specified slice type, but Merge supports more parameter types.

func (*SortedArray) PopLeft

func (a *SortedArray) PopLeft() interface{}

PopLeft pops and returns an item from the beginning of array.

func (*SortedArray) PopLefts

func (a *SortedArray) PopLefts(size int) []interface{}

PopLefts pops and returns <size> items from the beginning of array.

func (*SortedArray) PopRand

func (a *SortedArray) PopRand() interface{}

PopRand randomly pops and return an item out of array.

func (*SortedArray) PopRands

func (a *SortedArray) PopRands(size int) []interface{}

PopRands randomly pops and returns <size> items out of array.

func (*SortedArray) PopRight

func (a *SortedArray) PopRight() interface{}

PopRight pops and returns an item from the end of array.

func (*SortedArray) PopRights

func (a *SortedArray) PopRights(size int) []interface{}

PopRights pops and returns <size> items from the end of array.

func (*SortedArray) RLockFunc

func (a *SortedArray) RLockFunc(f func(array []interface{})) *SortedArray

RLockFunc locks reading by callback function <f>.

func (*SortedArray) Rand

func (a *SortedArray) Rand() interface{}

Rand randomly returns one item from array(no deleting).

func (*SortedArray) Rands

func (a *SortedArray) Rands(size int) []interface{}

Rands randomly returns <size> items from array(no deleting).

func (*SortedArray) Range

func (a *SortedArray) Range(start, end int) []interface{}

Range picks and returns items by range, like array[start:end]. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.

func (*SortedArray) Remove

func (a *SortedArray) Remove(index int) interface{}

Remove removes an item by index.

func (*SortedArray) Search

func (a *SortedArray) Search(value interface{}) (index int)

Search searches array by <value>, returns the index of <value>, or returns -1 if not exists.

func (*SortedArray) SetArray

func (a *SortedArray) SetArray(array []interface{}) *SortedArray

SetArray sets the underlying slice array with the given <array>.

func (*SortedArray) SetUnique

func (a *SortedArray) SetUnique(unique bool) *SortedArray

SetUnique sets unique mark to the array, which means it does not contain any repeated items. It also do unique check, remove all repeated items.

func (*SortedArray) Slice

func (a *SortedArray) Slice() []interface{}

Slice returns the underlying data of array. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.

func (*SortedArray) Sort

func (a *SortedArray) Sort() *SortedArray

Sort sorts the array in increasing order. The param <reverse> controls whether sort in increasing order(default) or decreasing order

func (*SortedArray) String

func (a *SortedArray) String() string

String returns current array as a string.

func (*SortedArray) SubSlice

func (a *SortedArray) SubSlice(offset, size int) []interface{}

SubSlice returns a slice of elements from the array as specified by the <offset> and <size> parameters. If in concurrent safe usage, it returns a copy of the slice; else a pointer.

func (*SortedArray) Sum

func (a *SortedArray) Sum() (sum int)

Sum returns the sum of values in an array.

func (*SortedArray) Unique

func (a *SortedArray) Unique() *SortedArray

Unique uniques the array, clear repeated items.

type SortedIntArray

type SortedIntArray struct {
	// contains filtered or unexported fields
}

It's using increasing order in default.

func NewSortedIntArray

func NewSortedIntArray(unsafe ...bool) *SortedIntArray

NewSortedIntArray creates and returns an empty sorted array. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func NewSortedIntArrayFrom

func NewSortedIntArrayFrom(array []int, unsafe ...bool) *SortedIntArray

NewIntArrayFrom creates and returns an sorted array with given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func NewSortedIntArrayFromCopy

func NewSortedIntArrayFromCopy(array []int, unsafe ...bool) *SortedIntArray

NewSortedIntArrayFromCopy creates and returns an sorted array from a copy of given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func NewSortedIntArraySize

func NewSortedIntArraySize(cap int, unsafe ...bool) *SortedIntArray

NewSortedIntArraySize create and returns an sorted array with given size and cap. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func (*SortedIntArray) Add

func (a *SortedIntArray) Add(values ...int) *SortedIntArray

Add adds one or multiple values to sorted array, the array always keeps sorted.

func (*SortedIntArray) Chunk

func (a *SortedIntArray) Chunk(size int) [][]int

Chunk splits an array into multiple arrays, the size of each array is determined by <size>. The last chunk may contain less than size elements.

func (*SortedIntArray) Clear

func (a *SortedIntArray) Clear() *SortedIntArray

Clear deletes all items of current array.

func (*SortedIntArray) Clone

func (a *SortedIntArray) Clone() (newArray *SortedIntArray)

Clone returns a new array, which is a copy of current array.

func (*SortedIntArray) Contains

func (a *SortedIntArray) Contains(value int) bool

Contains checks whether a value exists in the array.

func (*SortedIntArray) CountValues

func (a *SortedIntArray) CountValues() map[int]int

CountValues counts the number of occurrences of all values in the array.

func (*SortedIntArray) Get

func (a *SortedIntArray) Get(index int) int

Get returns the value of the specified index, the caller should notice the boundary of the array.

func (*SortedIntArray) Join

func (a *SortedIntArray) Join(glue string) string

Join joins array elements with a string <glue>.

func (*SortedIntArray) Len

func (a *SortedIntArray) Len() int

Len returns the length of array.

func (*SortedIntArray) LockFunc

func (a *SortedIntArray) LockFunc(f func(array []int)) *SortedIntArray

LockFunc locks writing by callback function <f>.

func (*SortedIntArray) Merge

func (a *SortedIntArray) Merge(array interface{}) *SortedIntArray

Merge merges <array> into current array. The parameter <array> can be any garray or slice type. The difference between Merge and Append is Append supports only specified slice type, but Merge supports more parameter types.

func (*SortedIntArray) PopLeft

func (a *SortedIntArray) PopLeft() int

PopLeft pops and returns an item from the beginning of array.

func (*SortedIntArray) PopLefts

func (a *SortedIntArray) PopLefts(size int) []int

PopLefts pops and returns <size> items from the beginning of array.

func (*SortedIntArray) PopRand

func (a *SortedIntArray) PopRand() int

PopRand randomly pops and return an item out of array.

func (*SortedIntArray) PopRands

func (a *SortedIntArray) PopRands(size int) []int

PopRands randomly pops and returns <size> items out of array.

func (*SortedIntArray) PopRight

func (a *SortedIntArray) PopRight() int

PopRight pops and returns an item from the end of array.

func (*SortedIntArray) PopRights

func (a *SortedIntArray) PopRights(size int) []int

PopRights pops and returns <size> items from the end of array.

func (*SortedIntArray) RLockFunc

func (a *SortedIntArray) RLockFunc(f func(array []int)) *SortedIntArray

RLockFunc locks reading by callback function <f>.

func (*SortedIntArray) Rand

func (a *SortedIntArray) Rand() int

Rand randomly returns one item from array(no deleting).

func (*SortedIntArray) Rands

func (a *SortedIntArray) Rands(size int) []int

Rands randomly returns <size> items from array(no deleting).

func (*SortedIntArray) Range

func (a *SortedIntArray) Range(start, end int) []int

Range picks and returns items by range, like array[start:end]. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.

func (*SortedIntArray) Remove

func (a *SortedIntArray) Remove(index int) int

Remove removes an item by index.

func (*SortedIntArray) Search

func (a *SortedIntArray) Search(value int) (index int)

Search searches array by <value>, returns the index of <value>, or returns -1 if not exists.

func (*SortedIntArray) SetArray

func (a *SortedIntArray) SetArray(array []int) *SortedIntArray

SetArray sets the underlying slice array with the given <array>.

func (*SortedIntArray) SetUnique

func (a *SortedIntArray) SetUnique(unique bool) *SortedIntArray

SetUnique sets unique mark to the array, which means it does not contain any repeated items. It also do unique check, remove all repeated items.

func (*SortedIntArray) Slice

func (a *SortedIntArray) Slice() []int

Slice returns the underlying data of array. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.

func (*SortedIntArray) Sort

func (a *SortedIntArray) Sort() *SortedIntArray

Sort sorts the array in increasing order. The param <reverse> controls whether sort in increasing order(default) or decreasing order.

func (*SortedIntArray) String

func (a *SortedIntArray) String() string

String returns current array as a string.

func (*SortedIntArray) SubSlice

func (a *SortedIntArray) SubSlice(offset, size int) []int

SubSlice returns a slice of elements from the array as specified by the <offset> and <size> parameters. If in concurrent safe usage, it returns a copy of the slice; else a pointer.

func (*SortedIntArray) Sum

func (a *SortedIntArray) Sum() (sum int)

Sum returns the sum of values in an array.

func (*SortedIntArray) Unique

func (a *SortedIntArray) Unique() *SortedIntArray

Unique uniques the array, clear repeated items.

type SortedStringArray

type SortedStringArray struct {
	// contains filtered or unexported fields
}

It's using increasing order in default.

func NewSortedStringArray

func NewSortedStringArray(unsafe ...bool) *SortedStringArray

NewSortedStringArray creates and returns an empty sorted array. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func NewSortedStringArrayFrom

func NewSortedStringArrayFrom(array []string, unsafe ...bool) *SortedStringArray

NewSortedStringArrayFrom creates and returns an sorted array with given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func NewSortedStringArrayFromCopy

func NewSortedStringArrayFromCopy(array []string, unsafe ...bool) *SortedStringArray

NewSortedStringArrayFromCopy creates and returns an sorted array from a copy of given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func NewSortedStringArraySize

func NewSortedStringArraySize(cap int, unsafe ...bool) *SortedStringArray

NewSortedStringArraySize create and returns an sorted array with given size and cap. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func (*SortedStringArray) Add

func (a *SortedStringArray) Add(values ...string) *SortedStringArray

Add adds one or multiple values to sorted array, the array always keeps sorted.

func (*SortedStringArray) Chunk

func (a *SortedStringArray) Chunk(size int) [][]string

Chunk splits an array into multiple arrays, the size of each array is determined by <size>. The last chunk may contain less than size elements.

func (*SortedStringArray) Clear

Clear deletes all items of current array.

func (*SortedStringArray) Clone

func (a *SortedStringArray) Clone() (newArray *SortedStringArray)

Clone returns a new array, which is a copy of current array.

func (*SortedStringArray) Contains

func (a *SortedStringArray) Contains(value string) bool

Contains checks whether a value exists in the array.

func (*SortedStringArray) CountValues

func (a *SortedStringArray) CountValues() map[string]int

CountValues counts the number of occurrences of all values in the array.

func (*SortedStringArray) Get

func (a *SortedStringArray) Get(index int) string

Get returns the value of the specified index, the caller should notice the boundary of the array.

func (*SortedStringArray) Join

func (a *SortedStringArray) Join(glue string) string

Join joins array elements with a string <glue>.

func (*SortedStringArray) Len

func (a *SortedStringArray) Len() int

Len returns the length of array.

func (*SortedStringArray) LockFunc

func (a *SortedStringArray) LockFunc(f func(array []string)) *SortedStringArray

LockFunc locks writing by callback function <f>.

func (*SortedStringArray) Merge

func (a *SortedStringArray) Merge(array interface{}) *SortedStringArray

Merge merges <array> into current array. The parameter <array> can be any garray or slice type. The difference between Merge and Append is Append supports only specified slice type, but Merge supports more parameter types.

func (*SortedStringArray) PopLeft

func (a *SortedStringArray) PopLeft() string

PopLeft pops and returns an item from the beginning of array.

func (*SortedStringArray) PopLefts

func (a *SortedStringArray) PopLefts(size int) []string

PopLefts pops and returns <size> items from the beginning of array.

func (*SortedStringArray) PopRand

func (a *SortedStringArray) PopRand() string

PopRand randomly pops and return an item out of array.

func (*SortedStringArray) PopRands

func (a *SortedStringArray) PopRands(size int) []string

PopRands randomly pops and returns <size> items out of array.

func (*SortedStringArray) PopRight

func (a *SortedStringArray) PopRight() string

PopRight pops and returns an item from the end of array.

func (*SortedStringArray) PopRights

func (a *SortedStringArray) PopRights(size int) []string

PopRights pops and returns <size> items from the end of array.

func (*SortedStringArray) RLockFunc

func (a *SortedStringArray) RLockFunc(f func(array []string)) *SortedStringArray

RLockFunc locks reading by callback function <f>.

func (*SortedStringArray) Rand

func (a *SortedStringArray) Rand() string

Rand randomly returns one item from array(no deleting).

func (*SortedStringArray) Rands

func (a *SortedStringArray) Rands(size int) []string

Rands randomly returns <size> items from array(no deleting).

func (*SortedStringArray) Range

func (a *SortedStringArray) Range(start, end int) []string

Range picks and returns items by range, like array[start:end]. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.

func (*SortedStringArray) Remove

func (a *SortedStringArray) Remove(index int) string

Remove removes an item by index.

func (*SortedStringArray) Search

func (a *SortedStringArray) Search(value string) (index int)

Search searches array by <value>, returns the index of <value>, or returns -1 if not exists.

func (*SortedStringArray) SetArray

func (a *SortedStringArray) SetArray(array []string) *SortedStringArray

SetArray sets the underlying slice array with the given <array>.

func (*SortedStringArray) SetUnique

func (a *SortedStringArray) SetUnique(unique bool) *SortedStringArray

SetUnique sets unique mark to the array, which means it does not contain any repeated items. It also do unique check, remove all repeated items.

func (*SortedStringArray) Slice

func (a *SortedStringArray) Slice() []string

Slice returns the underlying data of array. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.

func (*SortedStringArray) Sort

Sort sorts the array in increasing order. The param <reverse> controls whether sort in increasing order(default) or decreasing order.

func (*SortedStringArray) String

func (a *SortedStringArray) String() string

String returns current array as a string.

func (*SortedStringArray) SubSlice

func (a *SortedStringArray) SubSlice(offset, size int) []string

SubSlice returns a slice of elements from the array as specified by the <offset> and <size> parameters. If in concurrent safe usage, it returns a copy of the slice; else a pointer.

func (*SortedStringArray) Sum

func (a *SortedStringArray) Sum() (sum int)

Sum returns the sum of values in an array.

func (*SortedStringArray) Unique

func (a *SortedStringArray) Unique() *SortedStringArray

Unique uniques the array, clear repeated items.

type StringArray

type StringArray struct {
	// contains filtered or unexported fields
}

func NewStringArray

func NewStringArray(unsafe ...bool) *StringArray

NewStringArray creates and returns an empty array. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func NewStringArrayFrom

func NewStringArrayFrom(array []string, unsafe ...bool) *StringArray

NewStringArrayFrom creates and returns an array with given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func NewStringArrayFromCopy

func NewStringArrayFromCopy(array []string, unsafe ...bool) *StringArray

NewStringArrayFromCopy creates and returns an array from a copy of given slice <array>. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func NewStringArraySize

func NewStringArraySize(size int, cap int, unsafe ...bool) *StringArray

NewStringArraySize create and returns an array with given size and cap. The param <unsafe> used to specify whether using array in un-concurrent-safety, which is false in default.

func (*StringArray) Append

func (a *StringArray) Append(value ...string) *StringArray

See PushRight.

func (*StringArray) Chunk

func (a *StringArray) Chunk(size int) [][]string

Chunk splits an array into multiple arrays, the size of each array is determined by <size>. The last chunk may contain less than size elements.

func (*StringArray) Clear

func (a *StringArray) Clear() *StringArray

Clear deletes all items of current array.

func (*StringArray) Clone

func (a *StringArray) Clone() (newArray *StringArray)

Clone returns a new array, which is a copy of current array.

func (*StringArray) Contains

func (a *StringArray) Contains(value string) bool

Contains checks whether a value exists in the array.

func (*StringArray) CountValues

func (a *StringArray) CountValues() map[string]int

CountValues counts the number of occurrences of all values in the array.

func (*StringArray) Fill

func (a *StringArray) Fill(startIndex int, num int, value string) *StringArray

Fill fills an array with num entries of the value <value>, keys starting at the <startIndex> parameter.

func (*StringArray) Get

func (a *StringArray) Get(index int) string

Get returns the value of the specified index, the caller should notice the boundary of the array.

func (*StringArray) InsertAfter

func (a *StringArray) InsertAfter(index int, value string) *StringArray

InsertAfter inserts the <value> to the back of <index>.

func (*StringArray) InsertBefore

func (a *StringArray) InsertBefore(index int, value string) *StringArray

InsertBefore inserts the <value> to the front of <index>.

func (*StringArray) Join

func (a *StringArray) Join(glue string) string

Join joins array elements with a string <glue>.

func (*StringArray) Len

func (a *StringArray) Len() int

Len returns the length of array.

func (*StringArray) LockFunc

func (a *StringArray) LockFunc(f func(array []string)) *StringArray

LockFunc locks writing by callback function <f>.

func (*StringArray) Merge

func (a *StringArray) Merge(array interface{}) *StringArray

Merge merges <array> into current array. The parameter <array> can be any garray or slice type. The difference between Merge and Append is Append supports only specified slice type, but Merge supports more parameter types.

func (*StringArray) Pad

func (a *StringArray) Pad(size int, value string) *StringArray

Pad pads array to the specified length with <value>. If size is positive then the array is padded on the right, or negative on the left. If the absolute value of <size> is less than or equal to the length of the array then no padding takes place.

func (*StringArray) PopLeft

func (a *StringArray) PopLeft() string

PopLeft pops and returns an item from the beginning of array.

func (*StringArray) PopLefts

func (a *StringArray) PopLefts(size int) []string

PopLefts pops and returns <size> items from the beginning of array.

func (*StringArray) PopRand

func (a *StringArray) PopRand() string

PopRand randomly pops and return an item out of array.

func (*StringArray) PopRands

func (a *StringArray) PopRands(size int) []string

PopRands randomly pops and returns <size> items out of array.

func (*StringArray) PopRight

func (a *StringArray) PopRight() string

PopRight pops and returns an item from the end of array.

func (*StringArray) PopRights

func (a *StringArray) PopRights(size int) []string

PopRights pops and returns <size> items from the end of array.

func (*StringArray) PushLeft

func (a *StringArray) PushLeft(value ...string) *StringArray

PushLeft pushes one or multiple items to the beginning of array.

func (*StringArray) PushRight

func (a *StringArray) PushRight(value ...string) *StringArray

PushRight pushes one or multiple items to the end of array. It equals to Append.

func (*StringArray) RLockFunc

func (a *StringArray) RLockFunc(f func(array []string)) *StringArray

RLockFunc locks reading by callback function <f>.

func (*StringArray) Rand

func (a *StringArray) Rand() string

Rand randomly returns one item from array(no deleting).

func (*StringArray) Rands

func (a *StringArray) Rands(size int) []string

Rands randomly returns <size> items from array(no deleting).

func (*StringArray) Range

func (a *StringArray) Range(start, end int) []string

Range picks and returns items by range, like array[start:end]. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.

func (*StringArray) Remove

func (a *StringArray) Remove(index int) string

Remove removes an item by index.

func (*StringArray) Replace

func (a *StringArray) Replace(array []string) *StringArray

Replace replaces the array items by given <array> from the beginning of array.

func (*StringArray) Reverse

func (a *StringArray) Reverse() *StringArray

Reverse makes array with elements in reverse order.

func (*StringArray) Search

func (a *StringArray) Search(value string) int

Search searches array by <value>, returns the index of <value>, or returns -1 if not exists.

func (*StringArray) Set

func (a *StringArray) Set(index int, value string) *StringArray

Set sets value to specified index.

func (*StringArray) SetArray

func (a *StringArray) SetArray(array []string) *StringArray

SetArray sets the underlying slice array with the given <array>.

func (*StringArray) Shuffle

func (a *StringArray) Shuffle() *StringArray

Shuffle randomly shuffles the array.

func (*StringArray) Slice

func (a *StringArray) Slice() []string

Slice returns the underlying data of array. Notice, if in concurrent-safe usage, it returns a copy of slice; else a pointer to the underlying data.

func (*StringArray) Sort

func (a *StringArray) Sort(reverse ...bool) *StringArray

Sort sorts the array in increasing order. The param <reverse> controls whether sort in increasing order(default) or decreasing order

func (*StringArray) SortFunc

func (a *StringArray) SortFunc(less func(v1, v2 string) bool) *StringArray

SortFunc sorts the array by custom function <less>.

func (*StringArray) String

func (a *StringArray) String() string

String returns current array as a string.

func (*StringArray) SubSlice

func (a *StringArray) SubSlice(offset, size int) []string

SubSlice returns a slice of elements from the array as specified by the <offset> and <size> parameters. If in concurrent safe usage, it returns a copy of the slice; else a pointer.

func (*StringArray) Sum

func (a *StringArray) Sum() (sum int)

Sum returns the sum of values in an array.

func (*StringArray) Unique

func (a *StringArray) Unique() *StringArray

Unique uniques the array, clear repeated items.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL