姓名 | 性别 | 语文 | 数学 |
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来生成图表如线性表,饼图。