JAVA Linked List Как пройти через цикл for? - PullRequest
3 голосов
/ 06 июня 2011

Здравствуйте. Я пытаюсь создать цикл for, который перебирает связанный список.Для каждого элемента данных он будет перечислен отдельно.Я пытаюсь узнать связанный список здесь, поэтому никаких предложений Array, пожалуйста.Кто-нибудь знает, как это сделать?

Пример вывода:

  1. Рейс 187
  2. Рейс 501

КОД У меня ЕСТЬТак далеко внизу:

public static LinkedList<String> Flights = new LinkedList<String>();

public flightinfo(){
String[] flightNum = {"187", "501"};
        for (String x : flightNum)
        Flights.add(x);

                for (???)


}

Ответы [ 7 ]

15 голосов
/ 06 июня 2011

Просто используйте расширенный цикл for, так же, как вы делаете это с массивом:

for(String flight : flights) {
   // do what you like with it
}
6 голосов
/ 06 июня 2011

Если я вас правильно понимаю, вы должны получить ссылку на итератор Списка и использовать ее для циклического перемещения по данным:

ListIterator iterator = Flights.iterator(); 
while (iterator.hasNext()){
  System.out.print(iterator.next()+" ");  
}
1 голос
/ 06 июня 2011

Вы должны использовать ListIterator (см. Java API для получения дополнительной информации).

1 голос
/ 06 июня 2011
for(String y : Flights) {
//...
}

Точно так же, как массивы, так как он наследуется от Iterable<T>

Как указывает @Cold Hawaiian, это работает только для Java> = 5.0

Если используется pre 5.0:

ListIterator<String> iter = Flights.iterator();
while(iter.hasNext()) {
  String next = iter.next();
  // use next
}
0 голосов
/ 12 июня 2017

С Java8 Классы коллекций, которые реализуют Iterable, имеют метод forEach () forEach () и лямбда-выражениями вы можете легко перебирать LinkedList

flights.forEach(flight -> System.out.println(flight));
0 голосов
/ 30 апреля 2014
while(!flights.isEmptry) {
  System.out.println(flights.removeFirst());
}
0 голосов
/ 06 июня 2011

Если у вас есть различные значения в связанном списке, это будет работать:

for(Iterator<String> i = Flights.listIterator(); i.hasNext();){
    String temp = i.next();
    System.out.println(Flights.indexOf(temp)+1+". Flight "+temp );
}

Если у вас нет различных значений в связанном списке, это будет работать:

int i=0;
for(Iterator<String> iter = Flights.listIterator(); iter.hasNext();i++){
    String temp = iter.next();
    System.out.println(i+1+". Flight "+temp );
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...