2015-04-02 5 views
-1

Я создал список строк, и мне нужно изменить порядок их использования с помощью итератора. Это то, что у меня есть, но оно не работает. Может кто-то, пожалуйста, помогите мне найти способ сделать это или сказать мне, что я делаю неправильно?Как изменить порядок в списке строк с помощью итератора?

import java.util.Iterator; 
import java.util.ListIterator; 
import java.util.Arrays; 
import java.util.ArrayList; 
import java.util.List; 
public class nameList2 
{ 
    public static void main(String[] args) 
    { 
     List<String> nameList = new ArrayList<String>(); 

     nameList.add("Joey");         //list of Strings 
     nameList.add("Nicole"); 
     nameList.add("Lucas"); 
     nameList.add("Bobby"); 
     nameList.add("Michelle"); 
     nameList.add("Allie"); 

     Iterator<String> nameIterator = nameList.iterator();  //iterator 

     for(String s : nameList)        //for, each loop 
     { 
      if(nameIterator.hasNext());       //compile list 
       nameIterator.next(); 
     } 

     for(String s: nameList)         //for, each loop 
     { 
      if(nameIterator.hasPrevious());      //error states method cannot find hasPrevious? 
       System.out.println(nameIterator.previous()); 
     } 

    } 
} 
+1

Почему вы не можете сделать 'Collections.reverse (nameList);'? – JonK

+0

Использование ListIterator вместо Iterator – Prashant

ответ

2

использование ListIterator вместо Итератора как:

ListIterator<String> list = nameList.listIterator(nameList.size()); 

// Iterate in reverse. 
while(list.hasPrevious()) { 
    System.out.println(list.previous()); 
} 

и вы можете сделать также, как Йонк предложил использовать Collections.reverse(nameList);

0

Используйте два ListIterators, один в начале, один в конце и своп, пока не встретитесь. И не забывайте краевой случай (ы)

0
public static void main(String[] args) { 
    List<String> nameList = new ArrayList<String>(); 

    nameList.add("Joey");         //list of Strings 
    nameList.add("Nicole"); 
    nameList.add("Lucas"); 
    nameList.add("Bobby"); 
    nameList.add("Michelle"); 
    nameList.add("Allie"); 

    ListIterator<String> list = nameList.listIterator(); 

    System.out.println("Before Reversed\n"); 

    while(list.hasNext()){ 
     System.out.println(list.next()); 
    } 

    System.out.println("\nAfter Reversed \n"); 

    while(list.hasPrevious()){ 
     System.out.println(list.previous()); 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^