こんにちは。私は、イテレータを使って 'lots'の詳細を印刷するメソッドを作成するように求められてきました。しかし、すべての詳細を印刷するイテレータを作成することはできますが、購入されていないロットの場合は、このメッセージが表示され、そのコードをどのように追加できるかはわかりません。 public void closeメソッド私は焦点を当てています。これは私がこれまで持っていたものです。ヘルプは非常に高く評価されます。イテレータと印刷の詳細
私はあなたがロットLot.toString(に印刷したい情報を追加しますpublic class Auction{
// The list of Lots in this auction.
private final ArrayList<Lot> lots;
// The number that will be given to the next lot entered
// into this auction.
private int nextLotNumber;
/**
* Create a new auction.
*/
public Auction(){
lots = new ArrayList<Lot>();
nextLotNumber = 1;
}
/**
* Enter a new lot into the auction.
*
* @param description
* A description of the lot.
*/
public void enterLot(final String description){
lots.add(new Lot(nextLotNumber, description));
nextLotNumber++;
}
/**
* Show the full list of lots in this auction.
*/
public void showLots(){
for(final Lot lot : lots){
System.out.println(lot.toString());
}
}
public void close(){
final Iterator<Lot> it = lots.iterator();
while(it.hasNext()){
}
}
/**
* Bid for a lot. A message indicating whether the bid is
* successful or not is printed.
*
* @param number
* The lot number being bid for.
* @param bidder
* The person bidding for the lot.
* @param value
* The value of the bid.
*/
public void bidFor(final int lotNumber,
final Person bidder,
final long value){
final Lot selectedLot = getLot(lotNumber);
if(selectedLot != null){
final boolean successful =
selectedLot.bidFor(new Bid(bidder, value));
if(successful){
System.out.println("The bid for lot number " + lotNumber
+ " was successful.");
} else{
// Report which bid is higher.
final Bid highestBid = selectedLot.getHighestBid();
System.out.println("Lot number: " + lotNumber
+ " already has a bid of: " + highestBid.getValue());
}
}
}
}
これは宿題に関する質問ですか? – Wyzard
完全な 'Lot' APIについてもっと詳しく説明できますか? –