JAVA链接列表如何使用for循环进行循环?

时间:2011-06-05 20:50:15

标签: java linked-list

您好我正在尝试创建一个遍历链表的for循环。对于每个数据,它将单独列出。我想在这里学习链表,所以没有数组建议请。有谁知道怎么做?

示例输出:

  1. Flight 187
  2. 501航班

  3. 我的代码如下:

    public static LinkedList<String> Flights = new LinkedList<String>();
    
    public flightinfo(){
    String[] flightNum = {"187", "501"};
            for (String x : flightNum)
            Flights.add(x);
    
                    for (???)
    
    
    }
    

7 个答案:

答案 0 :(得分:15)

只需使用增强的for循环,就像使用数组一样:

for(String flight : flights) {
   // do what you like with it
}

答案 1 :(得分:6)

如果我理解正确,你必须得到List的迭代器的引用并使用它来遍历数据:

ListIterator iterator = Flights.iterator(); 
while (iterator.hasNext()){
  System.out.print(iterator.next()+" ");  
}

答案 2 :(得分:1)

for(String y : Flights) {
//...
}

与数组相同,因为它继承自Iterable<T>

正如@Cold Hawaiian所指出,这仅适用于Java&gt; = 5.0

如果使用5.0之前:

ListIterator<String> iter = Flights.iterator();
while(iter.hasNext()) {
  String next = iter.next();
  // use next
}

答案 3 :(得分:1)

您应该使用ListIterator(有关更多信息,请参阅Java API)。

答案 4 :(得分:0)

如果您在链接列表中有不同的值,则可以使用:

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

希望这有帮助。

答案 5 :(得分:0)

使用 Java8 实现Iterable的集合类具有 forEach() 方法。使用 forEach() 和lambda表达式,您可以轻松地在LinkedList上进行迭代

flights.forEach(flight -> System.out.println(flight));

答案 6 :(得分:-2)

while(!flights.isEmptry) {
  System.out.println(flights.removeFirst());
}