两个不同的list 有相同的 主键 快速 融合
package java2015.java07.java; import java.util.ArrayList; import java.util.List; /** * @author baoyou E-mail:curiousby@163.com * @version 创建时间:2015年7月8日 下午4:06:41 * 类说明: */ public class Test { static List<Student> slist = new ArrayList<Student>(); static List<ClazzStudentRelation> clist = new ArrayList<ClazzStudentRelation>(); static { for (int i = 1; i <= 5; i++) { slist.add( new Student(i+"", i+"") ); } for (int i = 1; i <= 2; i++) { clist.add(new ClazzStudentRelation(i+"", i+"") ); } } public static void main(String[] args) { List<StudentVO> svolist = new ArrayList<StudentVO>(); for (int i = 0; i < slist.size(); i++) { Student st = slist.get(i); StudentVO stvo = new StudentVO(st); if (clist.contains(new ClazzStudentRelation(st.getId()))) { stvo.setClazzId(getClazzStudentRelation(clist, st.getId()).getClazzId()); } svolist.add(stvo); } for (int i = 0; i < svolist.size(); i++) { System.out.println(svolist.get(i)); } } private static ClazzStudentRelation getClazzStudentRelation(List<ClazzStudentRelation> clist , String id){ for (int i = 0; i < clist.size(); i++) { ClazzStudentRelation csr = clist.get(i); if ( id .equals(csr.getUserid()) ) { return csr; } } return null; } } class Student { private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Student(){} public Student(String id, String name) { this.id = id; this.name = name; } } class ClazzStudentRelation{ private String userid; private String clazzId; public String getUserid() { return userid; } public void setUserid(String userid) { this.userid = userid; } public String getClazzId() { return clazzId; } public void setClazzId(String clazzId) { this.clazzId = clazzId; } public ClazzStudentRelation(){} public ClazzStudentRelation(String userid ) { this.userid = userid; } public ClazzStudentRelation(String userid, String clazzId) { this.userid = userid; this.clazzId = clazzId; } @Override public boolean equals(Object obj) { if (obj != null) if (obj instanceof ClazzStudentRelation) return this.userid .equals(((ClazzStudentRelation) obj).getUserid()); return false; } } class StudentVO extends Student{ StudentVO(Student student ){ setId(student.getId()); setName(student.getName()); } private String clazzId; public String getClazzId() { return clazzId; } public void setClazzId(String clazzId) { this.clazzId = clazzId; } @Override public String toString() { StringBuffer sb = new StringBuffer(); sb.append (getClass().getName().substring(getClass().getName().lastIndexOf(".")+1, getClass().getName().length())); sb.append(":["); sb.append("\"id\":\"" +getId()+"\"," ); sb.append("\"name\":\"" +getName()+"\"," ); sb.append("\"clazzId\":\"" +clazzId+"\"" ); sb.append("]"); return sb.toString() ; } }
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!
相关推荐
ext6 必要的两个主键 不可或缺 主要用于创建对象 自定义对象,以实现继承,自定义的功能
SQL判断表是否有主键,如何添加主键和移除主键 这是一个很好的例子个大家分享,以后我会及时更新
主键在物理层面上只有两个用途: 惟一地标识一行。 作为一个可以被外键有效引用的对象。 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。下面是主键...
什么是主键? 主键是表中唯一标识该表中每个元组(行)...在上面的示例中,roll_number属性永远不能具有相同的NULL值,因为在每个大学中注册的学生都拥有唯一的Roll_number,因此两个学生不能拥有相同的Roll_number,并
多主键(ssh中一表有多个主键进行插入)
删除无主键重复语句删除无主键重复语句删除无主键重复语句删除无主键重复语句
数据库主键生成,对主键的操作,主键,标识记录,找到记录 主键
获取数据库所有主键获取数据库所有主键获取数据库所有主键获取数据库所有主键获取数据库所有主键获取数据库所有主键
mybatis进行插入操作时,如果表的主键是自增的,针对不同的数据库相应的操作也不同。基本上经常会遇到的就是 Oracle Sequece 和 Mysql 自增主键,至于其他的手动生成唯一主键的问题在这里就不讨论了,这里主要说明下...
Powerdesigner 设计主键code不能重复等问题
如果你想给表中多个字段设置主键的时候,那在建表的时候,必须同时创建,如果当初建表的时候,只创建了一个主键,但是后来你还想往里边在设置一个主键,那是不允许的,创键多个主键时必须要同时创建。
第一种单字段主键类型,看上去简单,无非就是一个id字段呗,实际上这个主键字段在JPA,还有任何的ORM框架中都是有很多种生成策略的。 一般是如下4种: 1. AUTO:自动自增生成 2. TABLE:自定义表生成器 3. Identity...
背景介绍对sqlserver做数据库同步的时候,由于医院服务器和数据库版本的限制,选择了用发布订阅处理数据库同步,但是这个方式只能处理有主键的表,对于无主键的表
sqlserver在有数据情况下修改主键为自增 网上方法都有缺陷 自己写了一个版本,欢迎大家参考,不好用吗,大家都不评价
hibernate 无主键表映射资源说明: 1. 简单Demo 2. Demo对应的sql语句 3. 对应博客文档
联合主键用Hibernate注解映射方式主要有三种: 第一、将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并重写equals和hascode,再将该类注解为@Embeddable,最后在主类中(该类不包含联合主键...
Hibernate各种主键生成策略与配置详解 1、assigned 主键由外部程序负责生成,在 save() 之前...在存储对象前,必须要使用主键的setter方法给主键赋值,至于这个值怎么生成,完全由自己决定,这种方法应该尽量避免。
hibernate复合主键的实例,hibernate复合主键的实例。
Hibernate主键生成方式 1.identity方式 2.increment方式 3.assigned方式 4.sequence方式 5.native方式 6.UUID方式
复合主键映射 <br>通常将复合主键相关属性,单独抽取出来,建立一个独立的类 * 必须实现序列化接口 * 必须实现equals和hashcode方法 采用标签进行映射,其它属性采用正常映射