两个不同的list 有相同的 主键 快速 融合

简介: 两个不同的list  有相同的 主键 快速 融合   package java2015.java07.java; import java.util.ArrayList; import java.

两个不同的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捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

 

目录
相关文章
|
SQL 算法 前端开发
【MybatisPlus】MP解决四种表与实体的映射问题,以及id自增策略
MP解决四种表与实体的映射问题,以及id自增策略
2290 0
【MybatisPlus】MP解决四种表与实体的映射问题,以及id自增策略
|
5月前
list如何将自己实体的字段值赋给另外一个List实体中的相同字段
list如何将自己实体的字段值赋给另外一个List实体中的相同字段
122 0
|
5月前
|
JavaScript 数据格式
产品说这个 table 这里数据需要合并
产品说这个 table 这里数据需要合并
57 0
|
SQL 算法 关系型数据库
(四)mybatisPlus中表的三种主键和列的两种映关系,使用“雪花算法“提供分布式主键使用方案
😄看本博客之前,建议先看 1️⃣Mybatis-plus(MP)中CRUD操作保姆级笔记 2️⃣mybatisPlus实现ActiveRecord(AR)操作笔记 3️⃣mybatisPlus自定义Sql语句 🍅 作者:程序员小王 🍅 程序员小王的博客:https://www.wolai.com/wnaghengjie/ahNwvAUPG2Hb1Sy7Z8waaF 🍅 扫描主页左侧二维码,加我微信 一起学习、一起进步 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕
284 0
(四)mybatisPlus中表的三种主键和列的两种映关系,使用“雪花算法“提供分布式主键使用方案
|
NoSQL API
TairSearch:bool联合条件查询
TairSearch是Tair自主研发的高性能、低延时、基于内存的实时全文搜索数据结构,采用和Elasticsearch相似(ES-LIKE)的查询语法。一些用户在使用过程中会咨询到复杂联合查询语句的用法,本篇文章主要介绍如何在tairsearch中使用bool联合条件查询实现一些复杂场景的查询。 ## bool语句详解 bool是TairSearch中支持复杂联合查询的常用语法,主要支持有3种特
178 0
TairSearch:bool联合条件查询
基于Saas主键表生成主键id
首先需要对当前的id进行拦截操作,也即使用aop的切面Aspect对切点进行拦截,在进行新增的时候进行拦截: 也就是说在进行主键的生成时,我们拦截好需要生成的主键,此时就可以对其进行新增操作了,而首要的就是拿到它的primaryKey。由于进行新增操作,通常分为两种情况: 通过字节码拿到声明的方法getId,如果此时存在id,则说明此时的操作是更新操作,因此直接返回。如果当前通过字节码拿到的声明方法getTenant,通过租户方法拿到租户id。拿到租户id后,就可以进行主键id获取了。
164 0
基于Saas主键表生成主键id
技术汇总:第六章:分布式自增长ID
技术汇总:第六章:分布式自增长ID
|
云计算
PIE-engine 教程 ——云计算当中的map()映射函数list列表映射案例分析
PIE-engine 教程 ——云计算当中的map()映射函数list列表映射案例分析
113 0
PIE-engine 教程 ——云计算当中的map()映射函数list列表映射案例分析
|
SQL 算法 测试技术
Guid算法与标识列(自动增长字段)在表中的应用
Guid算法与标识列(自动增长字段)在表中的应用
171 0
Guid算法与标识列(自动增长字段)在表中的应用
【TP5】根据主键ID进行多条数据查询
【TP5】根据主键ID进行多条数据查询
349 0
【TP5】根据主键ID进行多条数据查询