返回arrayList的多个值

时间:2017-12-02 20:34:21

标签: java arrays loops for-loop arraylist

我有一种方法需要显示输入系统的出价历史记录,以及我现在对该方法的看法是:

@Override
public String displayHistory() {
    String bidder = toString();
    if (this.bids.isEmpty()) {
        return bidder + " = no bids";
    }
    for (int i = 0; i < this.bids.size(); i++) {
        bidder = "\n" + this.bids.get(i).toString() + "\n";
    }
    return toString() + " = " + bidder;
}

toString方法:(正确)

@Override
public String toString() {
    return this.productId + ": " + this.productName;
}

我需要做的方法是以通过我的测试类的形式打印出来:

测试类代码:

assertEquals("1: teddy = \n"+"J***e bid £7.0\n"+"S***a bid £5.0\n",product1.displayHistory());  

1:teddy = \ n J *** e出价£7.00 \ n S ***出价$ 5.00 \ n

但目前我的方法是打印这个:

1:teddy = \ n J *** e出价£7.00 \ n 空白\ n

然而,当我调试程序并在此时检查数组列表时,第二个出价在内部但没有显示for循环。

有没有办法可以更改这个循环,以便打印出数组列表中的所有值,而不仅仅是输入到列表中的最后一个值?我假设它必须使用循环系统,但也许不是?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

在你的循环中:

for (int i = 0; i < this.bids.size(); i++) {
    bidder = "\n" + this.bids.get(i).toString() + "\n";
}

您每次将当前一次出价分配给bidder变量。相反,你应该添加bidder += ...,但是StringBuilder.append()

可以更好地结束字符串。