2017-11-15 10 views
0

タイトルを本当に苦労して申し訳ありません。質問がどのように進むかを見てみましょう.....ハッシュマップ内でハッシュマップをクラスで更新する

私は、次のコードを含むbookというクラスがあります。 nameは書籍の名前で、hashMap文字列は批評家の名前で、hashMap Integerは批評家のスコアです。

public class book { 

    private String name; 
    private HashMap<String, Integer> results = new HashMap<String, Integer>(); 
} 

次に、bookRecordという別のクラスがあります。このクラスには、次のコードが含まれています。

private HashMap<Integer, Book> bookRecord = new HashMap<Integer, Book>(); 

私は新しい本を入力してその本をbookRecordに保存できるUIを書いています。

bookRecordの整数はブックのIDです。 IDで検索して本の名前を返すためのクエリを作成しました。新しい批評家とスコアがある場合は、本を更新できるようになりました。

私はそれぞれのループのために、本のレコードで正しいキーを見つけるために演奏されているし、キーがループごとに見つかったが、私は自分自身を混乱させる。

アドバイスはありますか?

答えて

2

あなたは2つのオプションがあります:あなたはresultsのHashMapを公開すると、このような何かを達成することができます

最初のオプション:

Book uBook = records.get(BOOK_ID_YOU_WANT_TO_UPDATE); 
if (uBook != null) { 
    uBook.results.put("New critic name", Critic_SCORE); 
} 

秒オプションはresultsプライベートを残すが、新しい方法addCriticScore(String criticName, Integer score)を追加することです:

// In your class that updates the book 
Book uBook = records.get(BOOK_ID_YOU_WANT_TO_UPDATE); 

// In the Book class 
public void addCriticScore(String criticName, Integer score) { 
    this.results.put(criticName, score); 
} 

PS:あなたのクラスの名前を変更することを忘れないでくださいbookからBookjavaにはクラス名は大文字で表示されます

関連する問題