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

Java 为什么MultiMap.add()生成类似于{Test_Case:[[1.0,2.0,3.0]]}但它应该是{Test_Case:[1.0,2.0,3.0]},java,collections,hashmap,multimap,Java,Collections,Hashmap,Multimap,这是一段代码,其中key是String类型,value是List,但当我收集所有列表元素并将其添加到MultiMap对象时,它将添加为[], 使用MultiMap的意图是因为im具有相同的键和不同的值(此处“$.name”具有多个值) 但它不应位于数组[]的数组内 请让我知道我遗漏了什么。我想您需要类似以下(未经测试的)代码。我从来没有使用过MultiMap,但它看起来就像是一个普通的映射一样,只需将项目添加到其中,它负责将它们添加到映射到键的集合中 List<String

这是一段代码,其中key是String类型,value是List,但当我收集所有列表元素并将其添加到MultiMap对象时,它将添加为[], 使用MultiMap的意图是因为im具有相同的键和不同的值(此处“$.name”具有多个值)

但它不应位于数组[]的数组内


请让我知道我遗漏了什么。

我想您需要类似以下(未经测试的)代码。我从来没有使用过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));
            }

        }
List header=funGetSheetColumns(wb,sSheetName);
MultiMap resMap=新的MultiMap();
对于(int j=0;j

这似乎表明了什么。

是否
data.get(j)
返回列表?将其添加到列表(valueList),然后将valueList添加到地图。如果是这样的话,你的输出就是我期望看到的。你应该只是添加数据。直接把(j)放到地图上吗?让它为我工作。谢谢你的重播@DaveH
$.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"
}]]
}
        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));
            }

        }