私はJavaコレクションに不慣れで、なぜリンクリストの要素を逆方向にトラバースできないのか疑問です。以下では、私が何をしたかを説明し、疑問を明確にしてください。
同じプログラムで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
後方反復の出力はどこにありますか?誰か助けてください。よろしくお願いします。
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());