如何创建动态List <String>

时间:2019-07-17 08:41:59

标签: java

我正在尝试动态创建列表

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

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 个答案:

答案 0 :(得分:0)

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);
}

答案 1 :(得分:0)

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);
}

一个人不应该更改地图的类型,因此需要创建一个新地图。