为什么multimap.add()会产生类似于{test\u case:[[1.0,2.0,3.0]]}的结果,但它应该是{test\u case:[1.0,2.0,3.0]}

wn9m85ua  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(227)

这是一段代码,其中key是string类型,value是list,但是当我收集所有list元素并将其添加到multimap对象时,使用multimap的意图是因为im具有相同的key和不同的值(这里“$.name”具有多个值)

List<String> header = funGetSheetColumns(wb, sSheetName);
            List valueList;
            MultiMap resMap = new MultiMap();

            for (int j = 0; j < header.size(); j++) {
                valueList = new ArrayList();
                for (List data : tableRS) {

                    valueList.add(data.get(j));
                }

                resMap.add(header.get(j), valueList);
            }

这是我得到的结果

$.name: [[a, b, c], [a1, b1, c1], [a2, b2, c2]]
RequestBody: [[{
  "id": 0,
  "category": {
    "id": 0,
    "name": "string"
  },
  "name": "doggie",
  "photoUrls": [
    "string"
  ],
  "tags": [
    {
      "id": 0,
      "name": "string"
    }
  ],
  "status": "available"
}, {
  "id": 0,
  "category": {
    "id": 0,
    "name": "string"
  },
  "name": "doggie",
  "photoUrls": [
    "string"
  ],
  "tags": [
    {
      "id": 0,
      "name": "string"
    }
  ],
  "status": "available"
}, {
  "id": 0,
  "category": {
    "id": 0,
    "name": "string"
  },
  "name": "doggie",
  "photoUrls": [
    "string"
  ],
  "tags": [
    {
      "id": 0,
      "name": "string"
    }
  ],
  "status": "available"
}]]
}

但它不应该在数组[[]的数组中
请让我知道我错过了什么。

olhwl3o2

olhwl3o21#

我认为您需要类似以下(未经测试的)代码。我从来没有使用过multimap,但它看起来就像是一个普通的Map一样,只需向其中添加项,它就可以将它们添加到Map到键的集合中。

List<String> header = funGetSheetColumns(wb, sSheetName);
        MultiMap resMap = new MultiMap();

        for (int j = 0; j < header.size(); j++) {
            for (List data : tableRS) {
                resMap.add(header.get(j),data.get(j));
            }

        }

不管怎么说,这条链接似乎表明了这一点。

相关问题