2015-09-13 24 views
5

Sono nuovo alle collezioni Java e il mio dubbio è perché non posso attraversare un elemento nella lista collegata in direzioni precedenti. Di seguito spiegherò cosa ho fatto e per favore chiarisci i miei dubbi.Come ripetere un elemento LinkedList in ordine inverso?

  1. ho creato un'interfaccia iteratore per iterazioni in avanti e ListIterator per iterazioni arretrate. Perché le iterazioni arretrate non funzionano?
  2. non posso usare iteratore e interfaccia ListIterator nello stesso programma per attraversare un insieme di elementi in iterazioni in avanti e indietro?

    Snippet di codice:

    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()); 
         } 
        } 
    } 
    

    uscita

    [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 
    

Dove è l'uscita per iterazioni all'indietro? Piacere a nessuno aiuto me.Thanks di anticipo

+0

Sei sicuro di iniziare l'iterazione dall'ultimo elemento dell'elenco? –

risposta

4

Si può fare, ma è necessario utilizzare il metodo listIterator(int index) per specificare che si voglio iniziare alla fine del 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());