姓名性别语文数学
Helena99100
Kevin100150

以上表格是个学生成绩表,把内容存储到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来生成图表如线性表,饼图。