【问题标题】: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.add() 产生像 {Test_Case: [[1.0, 2.0, 3.0]]} 但它应该是 {Test_Case: [1.0, 2.0, 3.0]}
【发布时间】:2020-11-26 11:58:48
【问题描述】:

这是一段代码,其中键是字符串类型,值是列表,但是当我收集所有列表元素并将其添加到 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"
}]]
}

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

请让我知道我缺少什么。

【问题讨论】:

  • data.get(j) 是否返回列表?您将其添加到列表 ( valueList ),然后将 valueList 添加到地图。如果是这种情况,您的输出就是我希望看到的。您是否应该直接将 data.get(j) 添加到地图中?

标签: java collections hashmap multimap


【解决方案1】:

我认为您需要类似以下(未经测试)的代码。我从未使用过 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 的意思。

【讨论】:

  • 让它为我工作。感谢重播@DaveH
猜你喜欢
  • 1970-01-01
  • 2019-04-14
  • 1970-01-01
  • 1970-01-01
  • 2013-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多