github.com/alexandrestein/gods@v1.0.1/lists/lists.go (about) 1 // Copyright (c) 2015, Emir Pasic. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // Package lists provides an abstract List interface. 6 // 7 // In computer science, a list or sequence is an abstract data type that represents an ordered sequence of values, where the same value may occur more than once. An instance of a list is a computer representation of the mathematical concept of a finite sequence; the (potentially) infinite analog of a list is a stream. Lists are a basic example of containers, as they contain other values. If the same value occurs multiple times, each occurrence is considered a distinct item. 8 // 9 // Reference: https://en.wikipedia.org/wiki/List_%28abstract_data_type%29 10 package lists 11 12 import ( 13 "github.com/alexandrestein/gods/containers" 14 "github.com/alexandrestein/gods/utils" 15 ) 16 17 // List interface that all lists implement 18 type List interface { 19 Get(index int) (interface{}, bool) 20 Remove(index int) 21 Add(values ...interface{}) 22 Contains(values ...interface{}) bool 23 Sort(comparator utils.Comparator) 24 Swap(index1, index2 int) 25 Insert(index int, values ...interface{}) 26 27 containers.Container 28 // Empty() bool 29 // Size() int 30 // Clear() 31 // Values() []interface{} 32 }