簡體   English   中英

如何以相反的順序迭代LinkedList元素?

[英]How to iterate a LinkedList elements in reverse order?

我是Java Collections的新手,我懷疑為什么我不能在向后的方向上遍歷鏈表中的元素。我將解釋我做了什么,請澄清我的懷疑。

  1. 我為前向迭代創建了接口迭代器,為后向迭代創建了listiterator 為什么反向迭代不起作用?
  2. 我不能在同一個程序中使用iteratorlistiterator接口來遍歷前向和后向迭代中的一組元素嗎?

    代碼片段:

     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 

Backward Iterations的輸出在哪里? 請有人幫幫我。謝謝

我想你想要一個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());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM