Vin*_*ino 7 java collections iterator linked-list listiterator
我是Java Collections的新手,我怀疑为什么我不能在向后的方向上遍历链表中的元素.我将解释我做了什么,请澄清我的怀疑.
我不能在同一个程序中使用iterator和listiterator接口来遍历前向和后向迭代中的一组元素吗?
代码片段:
import java.util.*;
class NewClass{
public static void main(String args[]){
LinkedList<String> obj = new LinkedList<String>();
obj.add("vino");
obj.add("ajith");
obj.add("praveen");
obj.add("naveen");
System.out.println(obj);
System.out.println("For loop ");
//using for loop
for(int count=0; count < obj.size(); count++){
System.out.println(obj.get(count));
}
System.out.println("For each loop ");
//using foreach loop
for(String s:obj){
System.out.println(s);
}
System.out.println("Whileloop ");
//using whileloop
int count=0;
while(obj.size() > count){
System.out.println(obj.get(count));
count++;
}
System.out.println("Forward Iterations ");
//using iterator
Iterator it = obj.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
ListIterator lit = obj.listIterator();
System.out.println("Backward Iterations");
while(lit.hasPrevious()){
System.out.println(lit.previous());
}
}
}
Run Code Online (Sandbox Code Playgroud)
产量
[vino, ajith, praveen, naveen]
For loop
vino
ajith
praveen
naveen
For each loop
vino
ajith
praveen
naveen
Whileloop
vino
ajith
praveen
naveen
Forward Iterations
vino
ajith
praveen
naveen
Backward Iterations
Run Code Online (Sandbox Code Playgroud)Backward Iterations的输出在哪里?请有人帮帮我.谢谢
小智 18
我想你想要一个descendingIterator.
Iterator lit = obj.descendingIterator();
System.out.println("Backward Iterations");
while(lit.hasNext()){
System.out.println(lit.next());
}
Run Code Online (Sandbox Code Playgroud)
可以做到,但是需要使用方法listIterator(int index)指定要在List.
LinkedList<String> obj = new LinkedList<String>();
obj.add("vino");
obj.add("ajith");
obj.add("praveen");
obj.add("naveen");
ListIterator<String> it = obj.listIterator(obj.size());
while (it.hasPrevious())
System.out.println(it.previous());
Run Code Online (Sandbox Code Playgroud)