2017-11-15 11 views
-2

私は、.values()を使ってコンソールにローンを出そうとしていましたが、アイテムや借り手を一覧表示するときに地図と一緒に動作します。どうして?なぜ私の.values()は意図した通りに動作しない

public void listLoans(){ 
    System.out.println("Loans:"); 
    for (LoanTransaction t: loans.values()) { 
     System.out.println(t); 
    } 
    System.out.println(); 
} 

アクセサ

public Map<Integer, Borrower> getBorrowers() { return borrowers; } 
public Map<Integer, Item>  getItems()  { return items; } 
public List<LoanTransaction> getLoans()  { return loans; } 

Listにはvalues()方法はありません意図

public void listItems() { 
    System.out.println("Items:"); 
    for (Item i: items.values()) { 
     System.out.println(i); 
    } 
    System.out.println(); 
    } 
+0

を必要とするだけで実行します。 ':'(ローンLoanTransactionのトン)のために。 – GriffeyDog

答えて

1

として動作項目をリストの例。 Mapsは、keySet()(およびキーと値のペアを返すentrySet())と区別する必要があります。それはIterableを実装して何がfor-eachループの右辺として使用することができ、

for(LoanTransaction t: loans) 

は、一般的に使用するのに十分です。

+0

ありがとう!今すぐ最初の "貸付金:" printlnを除いて結果が表示されない問題があります。貸し出しが含まれている理由はあまりありません – Alex3Fleming

+0

貸出金がリストにあれば何かが印刷されます。なぜリストに融資がないのかを調べる(2つのリストがあるかもしれない)。 – Kayaman

+0

それは働いて、私はちょうどファイルhahaからデータを読み取る関数を呼び出さなかったことが判明した、もう一度ありがとう! – Alex3Fleming

1

values()mapでのみご利用いただけます。

Listの場合、それは自己の値です。だからマップはペアで作られているので

for (LoanTransaction t: loans) 
+0

ありがとう!今では、最初の "Loan:" printlnを除いて結果が出力されない問題が発生しています。 – Alex3Fleming

0

values()のみ、マップのために働くべきである値

for (LoanTransaction t: loans.values()) 

を必要としません。 loansは、リスト内の要素を取得するには、タイプListであり、あなただけ

for (LoanTransaction t: loans) { 
     System.out.println(t); 
    } 
関連する問題