List Map分组应用的小例子
package com.common.main.mapAndList;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;/** * @author LiJianShe * @version 創建時間:Mar 19, 2010 3:33:35 PM 類說明:Student.java */public class Student {private String classId;private String studentId; // 学号private String studentName; // 姓名private String sex; // 性別 0 男 1 女public String getClassId() {return classId;}public void setClassId(String classId) {this.classId = classId;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getStudentId() {return studentId;}public void setStudentId(String studentId) {this.studentId = studentId;}public String getStudentName() {return studentName;}public void setStudentName(String studentName) {this.studentName = studentName;}public static void main(String[] args) {// TODO Auto-generated method stubList studentAllList = null ;// 所以班級的学生//步骤1Map<String ,List> map = new HashMap<String ,List>();Map<String ,Object> mapLast = new HashMap<String ,Object>();//for(Student student : studentAllList){for(Iterator it = studentAllList.iterator();it.hasNext();){Student student = (Student)it.next();if(map.containsKey(student.getClassId())){ //如果已经存在这个数组,就放在这里List studentList = map.get(student.getClassId());studentList.add(student);}else{List studentList = new ArrayList(); //重新声明一个数组liststudentList.add(student);map.put(student.getClassId(), studentList);}}//步骤2 //利用 处理1 步骤 分组完的数据 ,按性别 男/女 再次分组for(Map.Entry<String, List> m: map.entrySet()){ //按键值遍历 MapMap mapList = new HashMap(); //List studentSingle = m.getValue(); //同一班级的学生,男女List studentListMen = new ArrayList(); // 声明一个存放男生的 listList studentListWomen = new ArrayList(); // 声明一个存放女生的 listfor(Iterator it = studentSingle .iterator();it.hasNext();){//遍历Student student = (Student)it.next();if("0".equals(student.getSex())){ //男生studentListMen.add(student); //男生}else{studentListWomen.add(student); //女生}}mapLast.put("班级", m.getKey());mapLast.put("学生 男", studentListMen);}}}?