抱歉,标题真的很难命名。让我们看看问题如何发展.....

在Java中,我有一个名为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>();


我编写了一个UI,可让我输入一本新书并将该书保存到bookRecord中。

bookRecord中的Integer是该书的ID。
我写了一个查询来按ID搜索并返回书名。现在,如果有新的评论家和评分,我希望能够更新这本书。

我一直在为每个循环寻找一个正确的键,然后在每个循环中寻找一个合适的键,然后我为自己感到困惑。

有什么建议吗?

最佳答案

您有两种选择:

第一种选择是将results HashMap公开,并可以实现以下目的:

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


Seconds选项是将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);
}


附注:别忘了将您的课程book重命名为Book。在java中,类名以大写字母表示

关于java - 使用类更新哈希图中的哈希图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47318352/

10-13 00:52