将list中的数据通过某一个字段来分类存储的实例
现有学生表
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中的数据通过某一个字段来分类存储的实例的更多相关文章
- sql之将一个表中的数据注入另一个表中
sql之将一个表中的数据注入另一个表中 需求:现有两张表t1,t2,现需要将t2的数据通过XZQHBM相同对应放入t1表中 t1: t2: 思路:left join 语句: select * from ...
- mysql从一个表中拷贝数据到另一个表中sql语句
这一段在找新的工作,今天面试时,要做一套题,其中遇到这么一句话,从一个表中拷贝所有的数据到另一个表中的sql是什么? 原来我很少用到,也没注意过这个问题,面试后我上网查查,回来自己亲手写了写,测试了下 ...
- Jmeter BeanShell 从数据库中获取数据并创建一个requesBody
一.前言 在测试接口的时候常常会使用到数据库中的数据,当要使用大量的数据时,仅仅使用数据库查询是不够的.还需要使用自动化让操作更简便. 下面以一个简单的例子阐述一下如何使用beanShell让代码更简 ...
- 在小程序中修改上一个页面里data中的数据调用上一个页面的方法
//获取已经打开的页面的数组 var pages = getCurrentPages(); //获取上一个页面的所有的方法和data中的数据 var lastpage = pages[pages.l ...
- android中返回数据给上一个活动,可以用来回显数据
(一)who简介:没错,就是startActivityForResult()方法,这个方法用来在活动被销毁的时候返回数据给上一个方法.参数说明: startActivityForResult(inte ...
- List集合中的数据按照某一个属性进行分组
有的时候,我们需要在java中对集合中的数据进行分组运算.例如:Bill对象有money(float)和type(String)属性,现有个集合List<Bill>,需要按照Bill的ty ...
- 关于java中对list集合中的数据按照某一个属性进行分组
有的时候,我们需要在java中对集合中的数据进行分组运算. 例如:Bill对象有money(float)和type(String)属性,现有个集合List<Bill>,需要按照Bill的t ...
- C# 如何获取SQL Server 中指定数据表的所有字段名和字段类型
如何获取指定数据表的所有字段名和字段类型.SqlConnection.GetSchema方法有2个重载形式,获取指定数据表的所有字段名和字段类型的秘密就在GetSchema (String, Stri ...
- Mysql 一个表中的数据插入另一个表中
两张表的字段一致,并且插入全部数据 INSERT INTO 目标表 SELECT * FROM 来源表 ; 例如,要将 articles 表插入到 newArticles 表中,则可以通过如下 ...
随机推荐
- 使用Runtime.getRuntime().exec()在java中调用python脚本
举例有一个Python脚本叫test.py,现在想要在Java里调用这个脚本.假定这个test.py里面使用了拓展的包,使得pythoninterpreter之类内嵌的编译器无法使用,那么只能采用ja ...
- RASPBERRY PI 外设学习资源
参考: http://www.siongboon.com/projects/2013-07-08_raspberry_pi/index.html Raspberry Pi Get st ...
- learn python, ref, diveintopython 分类: python 2015-07-22 14:42 14人阅读 评论(0) 收藏
for notes of learing python. // just ignore the ugly/wrong highlight for python code. ""&q ...
- tesseract 编译与使用(windows)
tesseract是google的一个开源OCR项目,项目地址已经迁移到github(现在 2016/09),地址 https://github.com/tesseract-ocr/tesseract ...
- JSHelper时间格式化
Helper.prototype.FormatDate = function (format) { var _now = new Date(); var o = { "M+": _ ...
- 遗传算法的C语言实现(一):以非线性函数求极值为例
以前搞数学建模的时候,研究过(其实也不算是研究,只是大概了解)一些人工智能算法,比如前面已经说过的粒子群算法(PSO),还有著名的遗传算法(GA),模拟退火算法(SA),蚁群算法(ACA)等.当时懂得 ...
- MySQL数据库5 - 插入数据,修改数据,删除数据
一.插入数据 1. 所有列都插入值 INSERT [INTO] TABLE_NAME VALUES(V1,V2....Vn); 特点:列值同数,列值同序 eg: insert into users v ...
- Python学习路程day18
Python之路,Day18 - Django适当进阶篇 本节内容 学员管理系统练习 Django ORM操作进阶 用户认证 Django练习小项目:学员管理系统设计开发 带着项目需求学习是最有趣和效 ...
- Android深度探索--HAL与驱动开发----第六章读书笔记
Linux驱动程序与其他类型的Linux程序一样拥有自己的规则,下面给出一个编写基本的Linux驱动的一般步骤: (1)建立Linux驱动的骨架(装载和卸载Linux驱动): (2)注册和注销设备文件 ...
- K-近邻算法
废话不多说,直接放码过来. from numpy import * import operator def createDataSet () : group = array([[,],[,0.1]]) ...