Java集合-List對Map的存儲及解析

姓名性別語文數學
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來生成圖表如線性表,餅圖。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章