main
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
10package lists
11
12import (
13 "github.com/emirpasic/gods/containers"
14 "github.com/emirpasic/gods/utils"
15)
16
17// List interface that all lists implement
18type 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 Set(index int, value interface{})
27
28 containers.Container
29 // Empty() bool
30 // Size() int
31 // Clear()
32 // Values() []interface{}
33 // String() string
34}