为了账号安全,请及时绑定邮箱和手机立即绑定

如何创建动态列表<String>

如何创建动态列表<String>

白衣染霜花 2023-03-31 17:00:33
我正在尝试动态创建一个列表我尝试动态创建列表,但它不允许创建动态列表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 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

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

}

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


查看完整回答
反对 回复 2023-03-31
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

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

}


查看完整回答
反对 回复 2023-03-31
  • 2 回答
  • 0 关注
  • 103 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信