有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何创建动态列表<String>

我正在尝试动态创建一个列表

我试图动态创建列表,但它不允许创建动态列表

int length = masterList.size();
for (int i = 0; i < length; i++) 
{
    for (Map.Entry < String, Object > entry: masterList.get(i).entrySet()) 
    {
        if(entry.getKey().startsWith("tag_"))
        {
            ArrayList<String> entry.getKey() = new ArrayList();
            tagDataList = Arrays.asList(entry.getValue().toString().split(","));
            for (String string : tagDataList) 
            {
                entry.getKey().add(string);
            }
        }
     }
}

输入:

{
 "tag_fuse_type": "tag_1,tag_2"
}

所需输出:

{
 "tag_fuse_type": [
  "tag_1",
  "tag_2"
 ]
}

共 (2) 个答案

  1. # 1 楼答案

    Map<String, List<String>> newMap = new HashMap<>();
    for (Map.Entry<String, String> entry : masterList.entrySet()) {
        List<String> values = new LinkedList<>();
        if (entry.getKey().startsWith("tag_")) {
            String[] words = entry.getValue().split(",\\s*");
            Collections.addAll(values, words);
         } else {
            values.add(entry.getValue());
         }
         newMap.put(entry.getKey(), values);
    }
    

    人们不应该改变地图的类型,所以需要创建一个新的地图

  2. # 2 楼答案

    if (entry.getKey().startsWith("tag_")) {
        ArrayList < String > list = new ArrayList();
        tagDataList = Arrays.asList(entry.getValue().toString().split(","));
        for (String string: tagDataList) {
            list.add(string);
        }
        tagsMap.put(entry.getKey(), list);
    }