JAVA链接列表如何使用for循环进行循环?
您好我正在尝试创建一个遍历链表的for循环。 对于每个数据,它将单独列出。 我想在这里学习链表,所以请不要有数组建议。 有人知道怎么做吗?
示例输出:
- 187航class
- 501航class
我之前的代码:
public static LinkedList Flights = new LinkedList(); public flightinfo(){ String[] flightNum = {"187", "501"}; for (String x : flightNum) Flights.add(x); for (???) }
只需使用增强的for循环,就像使用数组一样:
for(String flight : flights) { // do what you like with it }
如果我理解正确,你必须获得List的迭代器的引用并使用它来遍历数据:
ListIterator iterator = Flights.iterator(); while (iterator.hasNext()){ System.out.print(iterator.next()+" "); }
您应该使用ListIterator(有关更多信息,请参阅Java API)。
for(String y : Flights) { //... }
与数组相同,因为它inheritance自Iterable
正如@Cold Hawaiian所指出的,这仅适用于Java> = 5.0
如果5.0之前使用:
ListIterator iter = Flights.iterator(); while(iter.hasNext()) { String next = iter.next(); // use next }
如果链表中有不同的值,则可以使用:
for(Iterator i = Flights.listIterator(); i.hasNext();){ String temp = i.next(); System.out.println(Flights.indexOf(temp)+1+". Flight "+temp ); }
如果链表中没有不同的值,则可以使用:
int i=0; for(Iterator iter = Flights.listIterator(); iter.hasNext();i++){ String temp = iter.next(); System.out.println(i+1+". Flight "+temp ); }
希望这可以帮助。
使用Java8 Collection实现Iterable的类有一个forEach()方法。 使用forEach()和lambda表达式,您可以轻松地遍历LinkedList
flights.forEach(flight -> System.out.println(flight));
while(!flights.isEmptry) { System.out.println(flights.removeFirst()); }