generated from ZipCodeCore/OldTexasCode2
-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathIList.java
152 lines (135 loc) · 5.53 KB
/
IList.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
import java.util.Iterator;
/**
* Interface for a simple List. Random access to all items in the list is provided.
* The numbering of elements in the list begins at 0.
*
*/
public interface IList<E> extends Iterable<E>{
/**
* Add an item to the end of this list.
* <br>pre: none
* <br>post: size() = old size() + 1, get(size() - 1) = item
* @param item the data to be added to the end of this list
*/
void add(E item);
/**
* Insert an item at a specified position in the list.
* <br>pre: 0 <= pos <= size()
* <br>post: size() = old size() + 1, get(pos) = item, all elements in
* the list with a positon >= pos have a position = old position + 1
* @param pos the position to insert the data at in the list
* @param item the data to add to the list
*/
void insert(int pos, E item);
/**
* Change the data at the specified position in the list.
* the old data at that position is returned.
* <br>pre: 0 <= pos < size()
* <br>post: get(pos) = item, return the
* old get(pos)
* @param pos the position in the list to overwrite
* @param item the new item that will overwrite the old item
* @return the old data at the specified position
*/
E set(int pos, E item);
/**
* Get an element from the list.
* <br>pre: 0 <= pos < size()
* <br>post: return the item at pos
* @param pos specifies which element to get
* @return the element at the specified position in the list
*/
E get(int pos);
/**
* Remove an element in the list based on position.
* <br>pre: 0 <= pos < size()
* <br>post: size() = old size() - 1, all elements of
* list with a positon > pos have a position = old position - 1
* @param pos the position of the element to remove from the list
* @return the data at position pos
*/
E remove(int pos);
/**
* Remove the first occurrence of obj in this list.
* Return <tt>true</tt> if this list changed as a result of this call, <tt>false</tt> otherwise.
* <br>pre: none
* <br>post: if obj is in this list the first occurence has been removed and size() = old size() - 1.
* If obj is not present the list is not altered in any way.
* @param obj The item to remove from this list.
* @return Return <tt>true</tt> if this list changed as a result of this call, <tt>false</tt> otherwise.
*/
boolean remove(E obj);
/**
* Return a sublist of elements in this list from <tt>start</tt> inclusive to <tt>stop</tt> exclusive.
* This list is not changed as a result of this call.
* <br>pre: <tt>0 <= start < size(), start <= stop <= size()</tt>
* <br>post: return a list whose size is stop - start and contains the elements at positions start through stop - 1 in this list.
* @param start index of the first element of the sublist.
* @param stop stop - 1 is the index of the last element of the sublist.
* @return a list with <tt>stop - start</tt> elements, The elements are from positions <tt>start</tt> inclusive to
* <tt>stop</tt> exclusive in this list.
*/
IList<E> getSubList(int start, int stop);
/**
* Return the size of this list. In other words the number of elements in this list.
* <br>pre: none
* <br>post: return the number of items in this list
* @return the number of items in this list
*/
int size();
/**
* Find the position of an element in the list.
* <br>pre: none
* <br>post: return the index of the first element equal to item
* or -1 if item is not present
* @param item the element to search for in the list
* @return return the index of the first element equal to item or a -1 if item is not present
*/
int indexOf(E item);
/**
* find the position of an element in the list starting at a specified position.
* <br>pre: 0 <= pos < size()
* <br>post: return the index of the first element equal to item starting at pos
* or -1 if item is not present from position pos onward
* @param item the element to search for in the list
* @param pos the position in the list to start searching from
* @return starting from the specified position return the index of the first element equal to item or a -1 if item is not present between pos and the end of the list
*/
int indexOf(E item, int pos);
/**
* return the list to an empty state.
* <br>pre: none
* <br>post: size() = 0
*/
void makeEmpty();
/**
* return an Iterator for this list.
* <br>pre: none
* <br>post: return an Iterator object for this List
*/
Iterator<E> iterator();
/**
* Remove all elements in this list from <tt>start</tt> inclusive to <tt>stop</tt> exclusive.
* <br>pre: <tt>0 <= start < size(), start <= stop <= size()</tt>
* <br>post: <tt>size() = old size() - (stop - start)</tt>
* @param start position at beginning of range of elements to be removed
* @param stop stop - 1 is the position at the end of the range of elements to be removed
*/
void removeRange(int start, int stop);
/**
* Return a String version of this list enclosed in
* square brackets, []. Elements are in
* are in order based on position in the
* list with the first element
* first. Adjacent elements are seperated by comma's
* @return a String representation of this IList
*/
public String toString();
/**
* Determine if this IList is equal to other. Two
* ILists are equal if they contain the same elements
* in the same order.
* @return true if this IList is equal to other, false otherwise
*/
public boolean equals(Object other);
}