为什么 MultiMap.add() 会产生类似 {Test_Case: [[1.0, 2.0, 3.0]]} 但它应该是 {Test_Case: [1.0, 2.0, 3.0]}

why MultiMap.add() is producing like {Test_Case: [[1.0, 2.0, 3.0]]} but it should be {Test_Case: [1.0, 2.0, 3.0]}

这是一段代码,其中键是字符串类型,值是列表,但是当我收集所有列表元素并将其添加到 MultiMap 对象时,它添加为 [[]], 使用 MultiMap 的意图是因为我有相同的键和不同的值(这里“$.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"
}]]
}

但它不应该在数组 [[]]

的数组中

请让我知道我缺少什么。

我认为您需要类似于以下(未经测试)的代码。我从未使用过 MultiMap,但看起来你只是向它添加项目,就像它是普通贴图一样,它会负责将它们添加到映射到键的集合中。

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

        }

无论如何,this link 似乎就是这个意思。