我是Java Collections的新手,我怀疑为什么我不能在向后的方向上遍历链表中的元素。我将解释我做了什么,请澄清我的怀疑。
我不能在同一个程序中使用迭代器和 listiterator 接口来遍历前向和后向迭代中的一组元素吗?
代码段:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<div id="colorBox">
<div class="circle"></div>
<div class="circle"></div>
<div class="circle"></div>
<div class="circle"></div>
<div class="circle"></div>
</div>
输出
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());
}
}
}
Backward Iterations的输出在哪里?请任何人帮助我。谢谢你提前
答案 0 :(得分:16)
我想你想要一个descendingIterator
。
Iterator lit = obj.descendingIterator();
System.out.println("Backward Iterations");
while(lit.hasNext()){
System.out.println(lit.next());
}
答案 1 :(得分:4)
您可以这样做,但您需要使用方法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());