我坚持以下要求,不知道如何处理它:
我的功能如下:
public void compareExcel(Map<Object,List<HashMap>>) compareMaps){}
此函数将地图作为输入参数。此映射将包含工作表名称与工作表值(列名称 - 列值)映射。
基本上函数输入参数如下:
<Excel1,(scenario:10)
(timing: 20)
Excel2,(scenario:30)
(timing: 40)
Excel3,(scenario:50)
(timing: 60)
>
这里我的excel1有两列(场景和时间),值分别为10和20。
在结果中,我将需要比较:
地图&GT;
<scenario, <excel1,10>
<excel2,30>
<excel3,50>
timing, <excel1,20>
<excel2,40>
<excel3,60>
>
任何帮助将不胜感激。
答案 0 :(得分:1)
Create/initialize the details of you output data-structure
LOOP (over the excelName:List pairs in you input)
LOOP (over the List that is the value in the pair)
//Each entry in the list is a map
Get the key-name (e.g. "scenario")
Get the value (e.g. "10")
//You already know the out key (i.e the excelName)
With the three known values, build/add to your output data-structure
答案 1 :(得分:0)
在移动设备上,我甚至无法检查语法,但是......
Map recopilation = new HashMap();
for(Object sheetName : compareMaps.keySet()) {
Map sheet = compareMaps.get(sheetName);
for (Object columnName : sheet.keySet()) {
if (recopilation.get(columnName) == null) {
recopilation.put(columnName, new HashMap());
}
((Map) recopilation.get(columnName)).put(sheetName, sheet.get(columnName));
}
}
这样的事情。如果它有效,你应该在那里抛出一些泛型,我主要不是为了节省一些打字。