现有学生表

public class Student {
/**
* 班级id
*/
private String classId;
/**
* 学生name
*/
private String name;
public Student() {
} public Student(String classId, String name) {
super();
this.classId = classId;
this.name = name;
}
public String getClassId() {
return classId;
}
public void setClassId(String classId) {
this.classId = classId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
} }

往student里存数据,并通过classId将student的list进行分类

public static void main(String[] args) {
List<Student>allData=new ArrayList<Student>();
allData.add(new Student("class1","张三"));
allData.add(new Student("class1","李四"));
allData.add(new Student("class1","王五"));
allData.add(new Student("class2","赵六"));
allData.add(new Student("class2","scy")); Map<String, List<Student>>map=new HashMap<String, List<Student>>();
for(Student student:allData){
if(map.get(student.getClassId())==null){
List<Student>list=new ArrayList<Student>();
list.add(student);
map.put(student.getClassId(), list);
}else{
List<Student>list=map.get(student.getClassId());
list.add(student); }
}
for (Student stu:map.get("class1")) {
System.out.println("班级id为:"+stu.getClassId()+"的"+stu.getName());
}
System.out.println("------------------------------");
for (Student stu:map.get("class2")) {
System.out.println("班级id为:"+stu.getClassId()+"的"+stu.getName());
} }

输出结果:

班级id为:class1的张三
班级id为:class1的李四
班级id为:class1的王五
------------------------------
班级id为:class2的赵六
班级id为:class2的scy

这样之后,map中key为class1的对象有三个,key为class2的对象有两个,可以通过这样的分类之后再将数据进行插入或修改就很方便了

顺便说一下遍历map,执行插入或修改操作的相关代码:

List<Student> students = new ArrayList<Student>();
Student stu1=new Student();
for (String key : map.keySet()) {
for (Student stu2 : map.get(key)) {
stu1.setClassId(stu2.getClassId());
stu1.setName(stu2.getName());
students.add(stu1);
}
addStudent(students);//执行插入方法
students.clear();//插入完后清空,第二次循环在往里面存值
}

  

将list中的数据通过某一个字段来分类存储的实例的更多相关文章

  1. sql之将一个表中的数据注入另一个表中

    sql之将一个表中的数据注入另一个表中 需求:现有两张表t1,t2,现需要将t2的数据通过XZQHBM相同对应放入t1表中 t1: t2: 思路:left join 语句: select * from ...

  2. mysql从一个表中拷贝数据到另一个表中sql语句

    这一段在找新的工作,今天面试时,要做一套题,其中遇到这么一句话,从一个表中拷贝所有的数据到另一个表中的sql是什么? 原来我很少用到,也没注意过这个问题,面试后我上网查查,回来自己亲手写了写,测试了下 ...

  3. Jmeter BeanShell 从数据库中获取数据并创建一个requesBody

    一.前言 在测试接口的时候常常会使用到数据库中的数据,当要使用大量的数据时,仅仅使用数据库查询是不够的.还需要使用自动化让操作更简便. 下面以一个简单的例子阐述一下如何使用beanShell让代码更简 ...

  4. 在小程序中修改上一个页面里data中的数据调用上一个页面的方法

    //获取已经打开的页面的数组 var pages = getCurrentPages(); //获取上一个页面的所有的方法和data中的数据  var lastpage = pages[pages.l ...

  5. android中返回数据给上一个活动,可以用来回显数据

    (一)who简介:没错,就是startActivityForResult()方法,这个方法用来在活动被销毁的时候返回数据给上一个方法.参数说明: startActivityForResult(inte ...

  6. List集合中的数据按照某一个属性进行分组

    有的时候,我们需要在java中对集合中的数据进行分组运算.例如:Bill对象有money(float)和type(String)属性,现有个集合List<Bill>,需要按照Bill的ty ...

  7. 关于java中对list集合中的数据按照某一个属性进行分组

    有的时候,我们需要在java中对集合中的数据进行分组运算. 例如:Bill对象有money(float)和type(String)属性,现有个集合List<Bill>,需要按照Bill的t ...

  8. C# 如何获取SQL Server 中指定数据表的所有字段名和字段类型

    如何获取指定数据表的所有字段名和字段类型.SqlConnection.GetSchema方法有2个重载形式,获取指定数据表的所有字段名和字段类型的秘密就在GetSchema (String, Stri ...

  9. Mysql 一个表中的数据插入另一个表中

    两张表的字段一致,并且插入全部数据 INSERT INTO  目标表  SELECT  * FROM  来源表 ; 例如,要将 articles 表插入到 newArticles 表中,则可以通过如下 ...

随机推荐

  1. http get/post解决乱码问题

    <form method="默认为get"-> <s:form mothod="默认为post"-> ================= ...

  2. 【转】关于Jquery中ajax方法data参数用法的总结

    $.ajax({ type: "POST", url: "some.php", data: "name=John&location=Bosto ...

  3. jquery点击获取子元素ID值

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. fc23升级fc24及字体问题解决

    1,升级fc23到最新 dnf upgrade --refresh 2,安装dnf系统升级插件 dnf install dnf-plugin-system-upgrade 3,下载fc24包,忽略无法 ...

  5. 改变系统自带UITableViewCell的imageView的大小

    CGSize itemSize = CGSizeMake(, ); UIGraphicsBeginImageContextWithOptions(itemSize, NO,0.0); CGRect i ...

  6. Linux系统重要快捷键& Shell 常用通配符

    [Tab]:使用Tab键来进行命令补全: [Ctrl+c]:强行终止当前程序: [Ctrl+d]:键盘输入结束或退出终端: [Ctrl+s]:暂定当前程序,暂停后按下任意键恢复运行: [Ctrl+z] ...

  7. Ubuntu下freeradius-server的安装与mysql-server的关联

    1.创建freeradius数据库 #service mysql start ... #mysql -u root -p Enter password: 456456 ... mysql> cr ...

  8. js中(function(){…})()立即执行函数写法理解

    文章摘自https://my.oschina.net/u/2331760/blog/468672?p={{currentPage+1}} 摘要: javascript和其他编程语言相比比较随意,所以j ...

  9. iOS开发一个用户登录注册模块需要解决的坑

    最近和另外一位同事负责公司登录和用户中心模块的开发工作,开发周期计划两周,减去和产品和接口的协调时间,再减去由于原型图和接口的问题,导致强迫症纠结症状高发,情绪不稳定耗费的时间,能在两周基本完成也算是 ...

  10. HyperV采用硬盘拷贝的方式迁移虚拟机后的问题处理

    公司有一台RSA认证服务器,是在windows 2008 R2下的虚拟机,最近总是出现服务中断的情况,考虑到宿主机性能较差,于是想迁移到新的服务器中. 本想通过SCVMM来迁移,但因功能不可用,所以采 ...