这会返回一个 HashMap 列表,这意味着对于每个值行,您都会获得一个键值结构:
static List<HashMap<String, String>> listToMap(List<List<String>> lst){
List<HashMap<String, String>> lmap = new ArrayList<>();
List<String> keys = lst.get(0);
for(int row=1;row<lst.size();row++){
List<String> currentRow = lst.get(row);
HashMap<String, String> kvRow = new HashMap<String, String>();
for(int i=0;i<keys.size();i++){
kvRow.put(keys.get(i), currentRow.get(i));
}
lmap.add(kvRow);
}
return lmap;
}
如果您使用示例数据运行它...
public static void main(String[] args) {
List<List<String>> lst = new ArrayList<>(3);
lst.add(Arrays.asList("no","firstname","lastname","age"));
lst.add(Arrays.asList("1","xxx","yyy","23"));
lst.add(Arrays.asList("2","aaa","bbb","24"));
System.out.println(listToMap(lst));
}
打印出来
[{no=1, age=23, lastname=yyy, firstname=xxx}, {no=2, age=24, lastname=bbb, firstname=aaa}]
这是你想要的方式吗?此代码假定所有值行的值至少与“键”行一样多。