ArrayList for-loop仅适用于第一个元素

时间:2014-10-19 17:51:38

标签: java for-loop arraylist

我正在使用Javascript开发一个项目,该项目要求我编写一个类,该方法以某种格式打印Tree对象的信息。到目前为止,这是我的toString方法(方法内的t.toString()是对不同类中的不同toString方法的引用)。它应该显示一个Tree对象的信息,然后转到一个新行并显示下一个Tree对象的信息。

public String toString() 
    {
        for (Tree t : db) 
        {
            return t.toString() + "\n";
        }

        return null;
    }

我使用此代码测试了该方法。

 TreeDB trees = new TreeDB();

        Tree oak = new Tree("Oak", 24, 27);
        Tree maple = new Tree("Maple", 8, 38);
        Tree spruce = new Tree("Spruce", 11, 32);

        trees.add(oak);
        trees.add(maple);
        trees.add(spruce);

        System.out.println(trees.toString());

它打印Oak的信息,但不打印Maple或Spruce的信息。我假设for-loop的标题有问题。有人可以帮我弄清楚如何打印所有Tree对象的信息吗?

3 个答案:

答案 0 :(得分:1)

(a)请重新检查你的循环。

(b)你的问题是你正在研究一个Javascript项目,但你发布的代码是用Java编写的。

答案 1 :(得分:1)

在读取第一个元素后退出函数,返回其String表示形式。使用StringBuffer存储所有元素:

    public String toString() 
    {
        StringBuffer result = new StringBuffer();
        for (Tree t : db) 
        {
            result.append(t.toString()).append("\n");
        }

        return result.toString();
    }

答案 2 :(得分:1)

for each循环中,您将返回第一个值。

使用StringBuilder(sb)存储(追加)所有值,然后return sb.toString()