您好我正在尝试创建一个遍历链表的for循环。对于每个数据,它将单独列出。我想在这里学习链表,所以没有数组建议请。有谁知道怎么做?
示例输出:
我的代码如下:
public static LinkedList<String> Flights = new LinkedList<String>();
public flightinfo(){
String[] flightNum = {"187", "501"};
for (String x : flightNum)
Flights.add(x);
for (???)
}
答案 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());
}