2015-09-13 6 views
5

I m new to Java Коллекции и мои сомнения почему я не могу пересечь элемент в связанном списке в обратном направлении. Ниже я объясню, что я сделал, и прошу прояснить мои сомнения.Как перебрать элементы LinkedList в обратном порядке?

  1. Я создал интерфейс итератора для передних итераций и ListIterator для обратных итераций. Почему обратные итерации не работают?
  2. Не могу я использовать итератор и 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 заранее

+0

Вы уверены, что используете итерирование из последнего элемента списка? –

ответ

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()); 
Смежные вопросы