链接列表遍历不会一直遍历?

时间:2013-11-30 04:49:37

标签: java

链接列表有四个节点,如下所示,我正在尝试迭代或遍历,所以我可以返回每个节点,如下所示...但我的代码只给了我第一个节点,并没有得到其余的节点返回...

Cary,USA,人口:40000

美国罗利,人口:34300

Apex,USA,人口:60000

达勒姆,美国,人口:34000

public T retrieveAll(TableInterface<City, String> inChart) {
    Node tmp = head;
    while(tmp != null) {
        tmp = tmp.getNext();
        return (T) head.getItem();
    }   
    return null;
}

3 个答案:

答案 0 :(得分:6)

一个方法一次只能返回一个东西。您的方法停止并在它到达return语句时返回。要返回多个内容,您必须将其作为ArrayList或数组返回。

答案 1 :(得分:2)

而不是在while循环中返回。使用像add这样的东西来添加ArrayList

然后在最后返回ArrayList

答案 2 :(得分:0)

您将在第一次迭代中从您的方法返回,这就是您只获得第一个Node的原因。

要解决此问题,您应该从while循环中删除return,并在迭代时将您的节点添加到集合中,并在最后返回该集合。