1.强制转化类型:Map转为list,错误代码:
List<String> convertList = (List<String>) rowData;
问题在于rowData是个map,而我需要转成List,我以为直接强转就可以,list和map可以互相转换,但是不能强制转换,要写个方法。正确写法:
public static List<String> convertToListOfLists(Map<Integer,String> map) {
return new ArrayList<>(map.values());
}
然后再把rowData传进去就好了。
List<String> convertList = convertToListOfLists(rowData);
2.不能再把List<List<String>>直接转为Map<String,String>,因为List<T>,而现在要把<T>转为一个Map<String,String>可以实现,但是把List<T>转为Map<String,String>不可以,因为是两层List转为了一层的map,丢了一层数据都不知道在哪丢的,属于多对一,如果统计的时候可能会出现这种情况,一般不会这样,一般都是一对一,然后再for循环。
这样就是错的,方法体都是错的,更别说里面的方法了。
public static Map<String, String> convertListToMap(Map<String, Integer> headMapExcel,List<List<String>> dataList) {
那么怎么写正确呢?
public static Map<String, String> convertListToMap(Map<String, Integer> headMapExcel,List<String> dataList) {
这样单层转可以实现,
然后再for循环里调单个的数据就ok
for (List<String> data:dataLists){
Map<String, String> convertMap = convertListToMap(headMapExcel, data);
dataList.add(convertMap);
}