簡體   English   中英

返回arrayList的多個值

[英]Returning multiple values of 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:泰迪= \\ n J *** e競標£7.00 \\ n S *** a競標$ 5.00 \\ n

但目前我的方法是打印此:

1:泰迪= \\ n J *** e出價£7.00 \\ n空白\\ n

但是,當我調試程序並檢查數組列表時,第二個出價在內部,但沒有顯示for循環。

有沒有一種方法可以更改此循環,以使其打印出此數組列表中的所有值,而不僅是最后輸入到列表中的值? 我認為它必須使用循環系統,但也許不是嗎? 任何幫助將不勝感激。

在您的循環中:

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

您每次都將當前一個出價分配給bidder變量。 相反,您應該添加如bidder bidder += ...但是通過StringBuilder.append()隱瞞字符串更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM