Documentation
¶
Index ¶
- type Array
- func (array *Array) Add(index int, value interface{}) (err error)
- func (array *Array) AddFirst(value interface{}) error
- func (array *Array) AddLast(value interface{}) error
- func (array *Array) Clear()
- func (array *Array) Contains(value interface{}) bool
- func (array *Array) Find(value interface{}) int
- func (array *Array) Get(index int) (value interface{}, err error)
- func (array *Array) GetCapacity() int
- func (array *Array) GetSize() int
- func (array *Array) IsEmpty() bool
- func (array *Array) PrintIn()
- func (array *Array) Remove(index int) (value interface{}, err error)
- func (array *Array) RemoveElement(value interface{}) (e interface{}, err error)
- func (array *Array) RemoveFirst() (interface{}, error)
- func (array *Array) RemoveLast() (interface{}, error)
- func (array *Array) Set(index int, value interface{}) (err error)
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 NewArray ¶
数组初始化内存 (可以指定长度,默认为10个长度)
Example ¶
测试实例化
package main import ( "github.com/JeffreyBool/array" "log" ) func main() { array := array.NewArray(2) for i := 0; i < 10; i++ { if err := array.Add(i, i+1); err != nil { log.Fatal(err) break } } array.PrintIn() if err := array.Add(10, 11); err != nil { log.Fatal(err) } if err := array.Add(10, 12); err != nil { log.Fatal(err) } array.PrintIn() }
Output: Array: size = 10 , capacity = 16 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Array: size = 12 , capacity = 16 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 11]
func (*Array) Add ¶
在 index 位置,插入元素e, 时间复杂度 O(m+n)
Example ¶
动态添加元素
package main import ( "github.com/JeffreyBool/array" "log" ) func main() { strs := []string{"A", "B", "C", "D", "E", "F"} array := array.NewArray() for i := 0; i < len(strs); i++ { if err := array.Add(i, strs[i]); err != nil { log.Fatal(err) break } } array.PrintIn() }
Output: Array: size = 6 , capacity = 10 [A, B, C, D, E, F]
func (*Array) AddFirst ¶
向数组头插入元素
Example ¶
向数组头部添加元素
package main import ( "github.com/JeffreyBool/array" ) func main() { array := array.NewArray() array.AddFirst("array add first") array.AddLast("array add last") array.Add(1, "array add value") array.PrintIn() }
Output: Array: size = 3 , capacity = 10 [array add first, array add value, array add last]
func (*Array) AddLast ¶
向数组尾插入元素
Example ¶
向数组末尾添加元素
package main import ( "github.com/JeffreyBool/array" ) func main() { array := array.NewArray() array.Add(0, 19) array.Add(1, 19) array.Add(2, 19) array.Add(3, 19) array.Add(4, 19) array.AddLast(20) array.PrintIn() }
Output: Array: size = 6 , capacity = 10 [19, 19, 19, 19, 19, 20]
func (*Array) Clear ¶
func (array *Array) Clear()
清空数组
Example ¶
清空元素
package main import ( "github.com/JeffreyBool/array" ) func main() { array := array.NewArray() strs := []string{"A", "B", "C", "D", "E", "F"} for index, str := range strs { array.Add(index, str) } array.PrintIn() array.Clear() array.PrintIn() }
Output: Array: size = 6 , capacity = 10 [A, B, C, D, E, F] Array: size = 0 , capacity = 6 []
func (*Array) Contains ¶
查找数组中是否有元素
Example ¶
判断数组是否存在某个值
package main import ( "fmt" "github.com/JeffreyBool/array" ) func main() { array := array.NewArray() if array.Contains("我是张三") { fmt.Println("找到了") } array.AddFirst("我是张三") if array.Contains("我是张三") { fmt.Println("找到了") } array.PrintIn() }
Output: 找到了 Array: size = 1 , capacity = 10 [我是张三]
func (*Array) Find ¶
通过索引查找数组,索引范围[0,n-1](未找到,返回 -1)
Example ¶
查询一个值的索引位置
package main import ( "fmt" "github.com/JeffreyBool/array" ) func main() { array := array.NewArray(10) array.AddFirst("我是张三") array.AddFirst("我是张三") array.AddLast("我是李四") find := array.Find("我是李四") fmt.Println(find) array.PrintIn() }
Output: 2 Array: size = 3 , capacity = 10 [我是张三, 我是张三, 我是李四]
func (*Array) Get ¶
获取对应 index 位置的元素
Example ¶
根据索引获取某个值
package main import ( "fmt" "github.com/JeffreyBool/array" "log" ) func main() { array := array.NewArray(10) array.Add(0, 10) if value, err := array.Get(0); err != nil { log.Fatal(err) } else { fmt.Println(value) } }
Output: 10
func (*Array) GetCapacity ¶
获取数组容量
Example ¶
获取数组容量
package main import ( "fmt" "github.com/JeffreyBool/array" ) func main() { array := array.NewArray() array.AddLast("我是张高元") array.PrintIn() fmt.Printf("array cap:%d \n", array.GetCapacity()) }
Output: Array: size = 1 , capacity = 10 [我是张高元] array cap:10
func (*Array) GetSize ¶
获取数组长度
Example ¶
获取数组长度
package main import ( "fmt" "github.com/JeffreyBool/array" ) func main() { array := array.NewArray() fmt.Printf("array len: %d \n", array.GetSize()) }
Output: array len: 0
func (*Array) IsEmpty ¶
判断数组是否为空
Example ¶
判断是否为空
package main import ( "fmt" "github.com/JeffreyBool/array" ) func main() { array := array.NewArray() fmt.Printf("array empty: %t \n", array.IsEmpty()) }
Output: array empty: true
func (*Array) PrintIn ¶
func (array *Array) PrintIn()
打印数列
Example ¶
打印输出
package main import ( "github.com/JeffreyBool/array" ) func main() { array := array.NewArray() strs := []string{"A", "B", "C", "D", "E", "F"} for index, str := range strs { array.Add(index, str) } array.PrintIn() }
Output: Array: size = 6 , capacity = 10 [A, B, C, D, E, F]
func (*Array) Remove ¶
删除 index 位置的元素,并返回
Example ¶
根据索引删除元素
package main import ( "github.com/JeffreyBool/array" ) func main() { array := array.NewArray() strs := []string{"A", "B", "C", "D", "E", "F"} for index, str := range strs { array.Add(index, str) } array.PrintIn() array.Remove(2) array.PrintIn() }
Output: Array: size = 6 , capacity = 10 [A, B, C, D, E, F] Array: size = 5 , capacity = 10 [A, B, D, E, F]
func (*Array) RemoveElement ¶
从数组中删除指定元素
Example ¶
删除指定元素
package main import ( "github.com/JeffreyBool/array" ) func main() { array := array.NewArray() strs := []string{"A", "B", "C", "D", "E", "F"} for index, str := range strs { array.Add(index, str) } array.PrintIn() array.RemoveElement("B") array.PrintIn() }
Output: Array: size = 6 , capacity = 10 [A, B, C, D, E, F] Array: size = 5 , capacity = 10 [A, C, D, E, F]
func (*Array) RemoveFirst ¶
删除数组首个元素
Example ¶
删除头部元素
package main import ( "github.com/JeffreyBool/array" ) func main() { array := array.NewArray() strs := []string{"A", "B", "C", "D", "E", "F"} for index, str := range strs { array.Add(index, str) } array.PrintIn() array.RemoveFirst() array.PrintIn() }
Output: array: size = 6 , capacity = 10 [A, B, C, D, E, F] Array: size = 5 , capacity = 10 [B, C, D, E, F]
func (*Array) RemoveLast ¶
删除末尾元素
Example ¶
删除末尾元素
package main import ( "github.com/JeffreyBool/array" ) func main() { array := array.NewArray() strs := []string{"A", "B", "C", "D", "E", "F"} for index, str := range strs { array.Add(index, str) } array.PrintIn() array.RemoveLast() array.PrintIn() }
Output: Array: size = 6 , capacity = 10 [A, B, C, D, E, F] Array: size = 5 , capacity = 10 [A, B, C, D, E]
func (*Array) Set ¶
修改 index 位置的元素
Example ¶
根据索引修改某个值
package main import ( "github.com/JeffreyBool/array" ) func main() { array := array.NewArray() array.AddFirst("array add first") array.PrintIn() array.Set(0, "array set value") array.PrintIn() }
Output: Array: size = 1 , capacity = 10 [array add first] Array: size = 1 , capacity = 10 [array set value]
Click to show internal directories.
Click to hide internal directories.