[英]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.