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