main
Raw Download raw file
 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}