私はライブラリブックのシミュレーションを行っています。私が執着している現在の部分は、toStringメソッドが呼び出されたときにローン上の本の数を見つけようとしています。Java:arraylistでオカレンスを数え、その出力をtoStringに出力するには?
public class Biblio{
private ArrayList<Book> collection;
private int loanCount;
書籍の状態は、私が上で立ち往生していたコードタイプの列挙型の
public enum Status {LOAN, REFERENCE, AVAILABLE};
です:
public int numberOfBooksOnLoan(){
int loanCount= 0;
for(Book onLoan: collection){
if(onLoan.getBookStatus()== Status.LOAN){
loanCount++;
}
}
return loanCount;
}
@Override
public String toString(){
StringBuilder string= new StringBuilder();
string.append("total number of books: ").append(bookCollection.size()).append("\n");
string.append("number of loaned books: ").append(loanCount).append("\n");
return string.toString();
}
両方numberOfBooksOnLoan
とtoString
方法はBiblio
クラスに
私がtoString
を使用した場合hodの場合は、書籍が貸与されている場合でも、値0が印刷されます。これは、このクラスのgetLoanCount
メソッドとは異なり、必要な値が印刷されます。
私はarraylistを経由してローンにあるすべての本を数え、この値を変数に格納してtoStringで使用できるようにするにはどうすればよいですか?より一般的には、どのようにarraylistを通過し、共通の特定の変数を持つすべてのオブジェクトを数えますか?場合
これが問題の一部であり、私は警告
int loanCount = 0;
ローカル変数を削除して? –