`
huangronaldo
  • 浏览: 220634 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

List Map分组应用的小例子

    博客分类:
  • Java
 
阅读更多

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 stub
		
		List studentAllList = null ;// 所以班級的学生
		
		//步骤1
		Map<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();  //重新声明一个数组list
				studentList.add(student);
				map.put(student.getClassId(), studentList);
			}
		}
		
//		步骤2 
//		利用 处理1 步骤 分组完的数据 ,按性别 男/女  再次分组
		for(Map.Entry<String, List> m: map.entrySet()){ //按键值遍历 Map
			Map mapList = new HashMap(); //
			
			List studentSingle  = m.getValue(); //同一班级的学生,男女
			List studentListMen = new ArrayList(); // 声明一个存放男生的 list
			List studentListWomen = new ArrayList(); // 声明一个存放女生的 list
			for(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);
		}
	}
}
 
分享到:
评论

相关推荐

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...

    CISCO 技术大集合

    CISCO 技术大集合 {适合你们的技术} 二、命令状态 1. router&gt; 路由器处于用户命令状态,这时用户可以看路由器的连接状态...以下给出一个显示Cisco同步串口状态的例子. Router#show interface serial 0 Serial 0 is ...

    Java范例开发大全 (源程序)

     实例206 运用映射的相关类(Map) 363  实例207 运用集的相关类(Set) 365  12.2 List 368  实例208 增加所需的元素 368  实例209 Iterator迭代器的使用 370  实例210 谁是幸运儿 371  实例211 ...

    java范例开发大全(pdf&源码)

    实例206 运用映射的相关类(Map) 363 实例207 运用集的相关类(Set) 365 12.2 List 368 实例208 增加所需的元素 368 实例209 Iterator迭代器的使用 370 实例210 谁是幸运儿 371 实例211 自定义Queue队列 373 实例...

    java范例开发大全源代码

    第1篇 Java编程基础  第1章 Java开发环境的搭建(教学视频:9分钟) 2 ... 实例206 运用映射的相关类(Map) 363  实例207 运用集的相关类(Set) 365  12.2 List 368  实例208 增加所需的元素 368 ...

    NHibernate参考文档 2.0.0 chm

    5.1.17. map, set, list, bag 5.1.18. 引用(import) 5.2. NHibernate 的类型 5.2.1. 实体(Entities)和值(values) 5.2.2. 基本值类型 5.2.3. 自定义值类型 5.2.4. Any类型映射 5.3. SQL中引号包围的标识符 5.4. 模块...

    java范例开发大全

    实例206 运用映射的相关类(Map) 363 实例207 运用集的相关类(Set) 365 12.2 List 368 实例208 增加所需的元素 368 实例209 Iterator迭代器的使用 370 实例210 谁是幸运儿 371 实例211 自定义Queue队列 373 实例...

    最全Hibernate 参考文档

    8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 (Dynamic components) 9. 继承映射(Inheritance Mappings) 9.1. 三种策略 ...

    NHibernate中文帮组文档(2008.11月更新)

    5.1.17. map, set, list, bag 5.1.18. 引用(import) 5.2. NHibernate 的类型 5.2.1. 实体(Entities)和值(values) 5.2.2. 基本值类型 5.2.3. 自定义值类型 5.2.4. Any类型映射 5.3. SQL中引号包围的标识符 5.4. 模块...

    Hibernate3+中文参考文档

    8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 (Dynamic components) 9. 继承映射(Inheritance Mappings) 9.1. 三种策略 ...

    hibernate 框架详解

    组件作为Map的索引(Components as Map indices ) 9.4. 组件作为联合标识符(Components as composite identifiers) 9.5. 动态组件 (Dynamic components) 10. 继承映射(Inheritance Mappings) 10.1. 三种...

    Hibernate中文详细学习文档

    8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 (Dynamic components) 9. 继承映射(Inheritance Mappings) 9.1. 三种...

    Hibernate参考文档

    8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 (Dynamic components) 9. 继承映射(Inheritance Mappings) 9.1. 三种策略 ...

    hibernate 体系结构与配置 参考文档(html)

    组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 (Dynamic components) 9. 继承映射(Inheritance Mappings) 9.1. 三种策略 ...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 (Dynamic components) 9. 继承映射(Inheritance Mappings) 9.1. 三种...

    Hibernate+中文文档

    8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 (Dynamic components) 9. 继承映射(Inheritance Mappings) 9.1. 三种...

Global site tag (gtag.js) - Google Analytics