【问题标题】:How can I add a string one at a time to a HashMap<Integer, List<String>>?如何一次将一个字符串添加到 HashMap<Integer, List<String>>?
【发布时间】:2015-07-15 22:01:23
【问题描述】:

此函数循环遍历字典 (allWords) 并使用 getKey 函数生成密钥。 wordListMap 是一个 HashMap> 所以我需要循环并放置键和一个列表。如果没有列表,我放一个,如果有,我只需要附加下一个字典单词。这是我需要帮助的地方。我只是无法弄清楚将下一个单词简单地附加到已经存在的列表中的语法。任何帮助,将不胜感激。

public static void constructWordListMap() {
    wordListMap = new HashMap<>();
    for (String w : allWords) {

        int key = getKey(w);

        if (isValidWord(w) && !wordListMap.containsKey(key)) {
            List list = new ArrayList();
            list.add(w);
            wordListMap.put(key, list);
        } else if (isValidWord(w) && wordListMap.containsKey(key)) {
            wordListMap.put(key, wordListMap.get(key).add(w));
        }

    }

}

【问题讨论】:

    标签: java string dictionary arraylist hashmap


    【解决方案1】:
    map.get(key).add(value)
    

    就这么简单。

    【讨论】:

      【解决方案2】:

      所以我收集到你想要的,给定HashMap&lt;Integer, List&lt;String&gt;&gt;,你想要:

      • 创建一个List 对象
      • String对象添加到List
      • 将该List 对象添加为要与先前生成的键配对的值(类型Integer

      为此,您需要先生成密钥

      Integer myKey = getKey(w);
      

      然后,您将进入一个循环并添加到 List object

      List<String> myList = new List<String>;
      for(int i = 0; i < intendedListLength; i++) {
          String myEntry = //wherever you get your string from
          myList.add(myEntry);
      }
      

      最后,您将List 添加到HashMap

      myHash.put(myKey, myList);
      

      在 cmets 中留下任何问题。

      【讨论】:

        【解决方案3】:
        else if (isValidWord(w) && wordListMap.containsKey(key)) {
                wordListMap.put(key, wordListMap.get(key).add(w));
            }
        

        如果您想向列表中添加新值,您需要先检索该列表。在上面的代码中,您将 add 的返回值放入表中(这是一个布尔值),这不是您想要的。

        相反,你会想要按照保罗所说的去做:

        else if (isValidWord(w) && wordListMap.containsKey(key)) {
                wordListMap.get(key).add(w);
            }
        

        之所以可行,是因为您之前已经在表中添加了一个 ArrayList。在这里,您将获得该 ArrayList,并为其添加一个新值。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-11-05
          • 1970-01-01
          • 1970-01-01
          • 2012-10-04
          • 1970-01-01
          • 2013-05-11
          • 1970-01-01
          相关资源
          最近更新 更多