姓名 | 性别 | 语文 | 数学 |
Helena | 女 | 99 | 100 |
Kevin | 男 | 100 | 150 |
以上表格是个学生成绩表,把内容存储到Java集合中,而且可以随意解析任意一列。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import java.util.Set;
public class ListStorageMap {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(addMaptoList().toString());
System.out.println(parseListStorageMap("col1").toString());
System.out.println(parseListStorageMap("col2").toString());
System.out.println(parseListStorageMap("col3").toString());
System.out.println(parseListStorageMap("col4").toString());
}
public static List<Map<String, Object>> addMaptoList(){
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
Map<String, Object> map1 = new HashMap<String, Object>();
Map<String, Object> map2 = new HashMap<String, Object>();
map.put("col1", "姓名");
map.put("col2", "性别");
map.put("col3", "语文");
map.put("col4", "数学");
list.add(map);
map1.put("col1", "Helena");
map1.put("col2", "女");
map1.put("col3", 99);
map1.put("col4", 100);
list.add(map1);
map2.put("col1", "Kevin");
map2.put("col2", "男");
map2.put("col3", 100);
map2.put("col4", 150);
list.add(map2);
//System.out.println(list.toString());
return list;
}
public static List parseListStorageMap(String str){
List<Map<String, Object>> list = addMaptoList();
List colData = new ArrayList();
for(Map<String, Object> k : list){
for(String m: k.keySet()){
//System.out.println(m+":"+k.get(m));
if(m.equals(str)){
colData.add(k.get(m));
}
}
}
return colData;
}
}
输出结果:
[{col4=数学, col1=姓名, col3=语文, col2=性别}, {col4=100, col1=Helena, col3=99, col2=女}, {col4=150, col1=Kevin, col3=100, col2=男}]
[姓名, Helena, Kevin]
[性别, 女, 男]
[语文, 99, 100]
[数学, 100, 150]
应用:一般使用润乾报表会把ireport对象转换成这样格式的List,这样方便取出每列的值,然后使用FusionCharts或者Echarts来生成图表如线性表,饼图。
转载于:https://blog.51cto.com/stormkai/1631480