The Java iterator gets the next one without incrementing
•
Java
I write the following loop in Java for each loop that I want to access the current and next elements of the link list R:
List<T> r = new LinkedList();
for (int i=0; i < r.size() - 1; i++) {
T current = r.get(i);
T next = r.get(i+1);
}
This can be wasteful because every time I call get (I), it starts from scratch, so the run-time order of the code is O (n ^ 2) How to use iterator to achieve the same function (this time o (n))? This is my first attempt:
while(it.hasNext()) {
T current = it;
T next = it.next();
}
Solution
Keep the variable previous previously equal to the current value of the previous cycle
T prevIoUs = null;
// If it makes sense to skip the first "null,first element" pair...
if (it.hasNext())
{
prevIoUs = it.next();
}
while (it.hasNext())
{
T current = it.next();
// Process prevIoUs and current here.
// End of loop,after processing. Maintain prevIoUs reference.
prevIoUs = current;
}
This will be o (n) because you use iterators throughout the list
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码
