如何以相反的顺序迭代 LinkedList 元素?
How to iterate a LinkedList elements in reverse order?
我是 Java 集合的新手,我的疑问是为什么我不能向后遍历链表中的元素 directions.Below 我会解释我做了什么,请澄清我的疑问。
- 我为前向迭代创建了接口 iterator,为后向迭代创建了 listiterator。为什么向后迭代不起作用?
我不能在同一个程序中使用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());
}
}
}
输出
[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
向后迭代的输出在哪里?请任何人提前帮助me.Thanks
我想你想要一个 descendingIterator
。
Iterator lit = obj.descendingIterator();
System.out.println("Backward Iterations");
while(lit.hasNext()){
System.out.println(lit.next());
}
可以,但是需要用方法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());
我是 Java 集合的新手,我的疑问是为什么我不能向后遍历链表中的元素 directions.Below 我会解释我做了什么,请澄清我的疑问。
- 我为前向迭代创建了接口 iterator,为后向迭代创建了 listiterator。为什么向后迭代不起作用?
我不能在同一个程序中使用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()); } } }
输出
[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
向后迭代的输出在哪里?请任何人提前帮助me.Thanks
我想你想要一个 descendingIterator
。
Iterator lit = obj.descendingIterator();
System.out.println("Backward Iterations");
while(lit.hasNext()){
System.out.println(lit.next());
}
可以,但是需要用方法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());