【问题标题】:Java HashMap: adding to arraylistJava HashMap:添加到数组列表
【发布时间】:2011-12-02 19:49:54
【问题描述】:

我正在使用 HashMap 类,它看起来像这样:

HashMap<String, ArrayList<String>> fileRank = new HashMap<String, ArrayList<String>>();

我想知道如何在初始放置后将新字符串添加到 Arraylist 中。

fileRank.put(word, file1);

我想在 file1 之后添加 file2 到 key: word from above。

【问题讨论】:

  • 您可能还想查看来自 3rd 方集合库的多地图类。
  • 注意:尽可能使用接口作为声明类型:Map> fileRank = new HashMap>();

标签: java hashmap


【解决方案1】:

你必须先把数组列表拿出来:

ArrayList<String> list = fileRank.get(word);
list.add(file1);

当然,如果您还不知道该键是否存在条目,情况会变得更加复杂。

ArrayList<String> list = fileRank.get(word);
if (list == null) {
    list = new ArrayList<String>();
    fileRank.put(word, list);
}
list.add(file1);

【讨论】:

    【解决方案2】:

    您向地图请求某个键的值,这是一个 ArrayList,您可以在其上调用 add。

    String key = "myKey";
    fileRank.put( key, new ArrayList<String>() );
    //...
    fileRank.get( key ).add( "a value");
    

    【讨论】:

      【解决方案3】:

      根据String键获取ArrayList,对ArrayList执行add(),然后将其放回HashMap(可选,因为地图已经保存了对它的引用);

      fileRank.get(word).add(String)
      fileRank.put(work, list);
      

      【讨论】:

      • 为什么又放回去了?有必要吗?
      • 你不必这样做。编辑了我的帖子,认为这样更具可读性。
      【解决方案4】:

      一个可能的解决方案:

      public class MyContainer {
      
          private final Map<String, List<String>> myMap = new HashMap<String, List<String>>();
      
          public void add(String key, String value) {
              if(myMap.containsKey(key)) {
                  myMap.get(key).add(value);
              } else {
                  ArrayList<String> newList = new ArrayList<String>();
                  newList.add(value);
      
                  myMap.put(key, newList);
              }
          }
      }
      

      【讨论】:

        【解决方案5】:

        私有静态HashMap> mmArrays = new HashMap>();

        mmArrays.put(key,data);

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-08-01
          • 1970-01-01
          • 2011-12-19
          • 1970-01-01
          • 1970-01-01
          • 2018-07-11
          • 2021-07-23
          • 1970-01-01
          相关资源
          最近更新 更多