-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathListIteratorMe.java
More file actions
160 lines (148 loc) · 5.67 KB
/
ListIteratorMe.java
File metadata and controls
160 lines (148 loc) · 5.67 KB
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
153
154
155
156
157
158
159
160
package resourceCode.util;
import java.util.NoSuchElementException;
/**
* ListIterator ½Ó¿Ú
*
* @author ken
* @param <E>
* 2017-4-1 ÉÏÎç10:20:28
*/
public interface ListIteratorMe<E> extends IteratorMe<E> {
// Query Operations
/**
* Returns true if this list iterator has more elements when
* traversing the list in the forward direction. (In other words, returns
* true if next would return an element rather than
* throwing an exception.)
*
* @return true if the list iterator has more elements when
* traversing the list in the forward direction.
*/
boolean hasNext();
/**
* Returns the next element in the list. This method may be called
* repeatedly to iterate through the list, or intermixed with calls to
* previous to go back and forth. (Note that alternating calls to
* next and previous will return the same element
* repeatedly.)
*
* @return the next element in the list.
* @exception NoSuchElementException
* if the iteration has no next element.
*/
E next();
/**
* Returns true if this list iterator has more elements when
* traversing the list in the reverse direction. (In other words, returns
* true if previous would return an element rather than
* throwing an exception.)
*
* @return true if the list iterator has more elements when
* traversing the list in the reverse direction.
*/
boolean hasPrevious();
/**
* Returns the previous element in the list. This method may be called
* repeatedly to iterate through the list backwards, or intermixed with
* calls to next to go back and forth. (Note that alternating calls
* to next and previous will return the same element
* repeatedly.)
*
* @return the previous element in the list.
*
* @exception NoSuchElementException
* if the iteration has no previous element.
*/
E previous();
/**
* Returns the index of the element that would be returned by a subsequent
* call to next. (Returns list size if the list iterator is at the
* end of the list.)
*
* @return the index of the element that would be returned by a subsequent
* call to next, or list size if list iterator is at end of
* list.
*/
int nextIndex();
/**
* Returns the index of the element that would be returned by a subsequent
* call to previous. (Returns -1 if the list iterator is at the
* beginning of the list.)
*
* @return the index of the element that would be returned by a subsequent
* call to previous, or -1 if list iterator is at beginning
* of list.
*/
int previousIndex();
// Modification Operations
/**
* Removes from the list the last element that was returned by next
* or previous (optional operation). This call can only be made
* once per call to next or previous. It can be made only
* if ListIterator.add has not been called after the last call to
* next or previous.
*
* @exception UnsupportedOperationException
* if the remove operation is not supported by this
* list iterator.
* @exception IllegalStateException
* neither next nor previous have been
* called, or remove or add have been
* called after the last call to next or
* previous.
*/
void remove();
/**
* Replaces the last element returned by next or previous
* with the specified element (optional operation). This call can be made
* only if neither ListIterator.remove nor
* ListIterator.add have been called after the last call to
* next or previous.
*
* @param e
* the element with which to replace the last element returned by
* next or previous.
* @exception UnsupportedOperationException
* if the set operation is not supported by this
* list iterator.
* @exception ClassCastException
* if the class of the specified element prevents it from
* being added to this list.
* @exception IllegalArgumentException
* if some aspect of the specified element prevents it from
* being added to this list.
* @exception IllegalStateException
* if neither next nor previous have been
* called, or remove or add have been
* called after the last call to next or
* previous.
*/
void set(E e);
/**
* Inserts the specified element into the list (optional operation). The
* element is inserted immediately before the next element that would be
* returned by next, if any, and after the next element that would
* be returned by previous, if any. (If the list contains no
* elements, the new element becomes the sole element on the list.) The new
* element is inserted before the implicit cursor: a subsequent call to
* next would be unaffected, and a subsequent call to
* previous would return the new element. (This call increases by
* one the value that would be returned by a call to nextIndex or
* previousIndex.)
*
* @param e
* the element to insert.
* @exception UnsupportedOperationException
* if the add method is not supported by this list
* iterator.
*
* @exception ClassCastException
* if the class of the specified element prevents it from
* being added to this list.
*
* @exception IllegalArgumentException
* if some aspect of this element prevents it from being
* added to this list.
*/
void add(E e);
}