两个不同的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自增策略
2606 0
【MybatisPlus】MP解决四种表与实体的映射问题,以及id自增策略
|
4月前
|
存储 C++
C++的list-map链表与映射表
```markdown C++ 中的`list`和`map`提供链表和映射表功能。`list`是双向链表,支持头尾插入删除(`push_front/push_back/pop_front/pop_back`),迭代器遍历及任意位置插入删除。`map`是键值对集合,自动按键排序,支持直接通过键来添加、修改和删除元素。两者均能使用范围for循环遍历,`map`的`count`函数用于统计键值出现次数。 ```
|
6月前
list如何将自己实体的字段值赋给另外一个List实体中的相同字段
list如何将自己实体的字段值赋给另外一个List实体中的相同字段
206 0
|
6月前
|
JavaScript 数据格式
产品说这个 table 这里数据需要合并
产品说这个 table 这里数据需要合并
68 0
|
存储 缓存 NoSQL
分布式ID(唯一性)的生成方法汇总
分布式ID(唯一性)的生成方法汇总
分布式ID(唯一性)的生成方法汇总
|
NoSQL API
TairSearch:bool联合条件查询
TairSearch是Tair自主研发的高性能、低延时、基于内存的实时全文搜索数据结构,采用和Elasticsearch相似(ES-LIKE)的查询语法。一些用户在使用过程中会咨询到复杂联合查询语句的用法,本篇文章主要介绍如何在tairsearch中使用bool联合条件查询实现一些复杂场景的查询。 ## bool语句详解 bool是TairSearch中支持复杂联合查询的常用语法,主要支持有3种特
187 0
TairSearch:bool联合条件查询
基于Saas主键表生成主键id
首先需要对当前的id进行拦截操作,也即使用aop的切面Aspect对切点进行拦截,在进行新增的时候进行拦截: 也就是说在进行主键的生成时,我们拦截好需要生成的主键,此时就可以对其进行新增操作了,而首要的就是拿到它的primaryKey。由于进行新增操作,通常分为两种情况: 通过字节码拿到声明的方法getId,如果此时存在id,则说明此时的操作是更新操作,因此直接返回。如果当前通过字节码拿到的声明方法getTenant,通过租户方法拿到租户id。拿到租户id后,就可以进行主键id获取了。
174 0
基于Saas主键表生成主键id
|
云计算
PIE-engine 教程 ——云计算当中的map()映射函数list列表映射案例分析
PIE-engine 教程 ——云计算当中的map()映射函数list列表映射案例分析
125 0
PIE-engine 教程 ——云计算当中的map()映射函数list列表映射案例分析
阿里字节技术大佬都在用的List集合去重方案!
常规去重 碰到List去重的问题,除了遍历去重,我们常常想到利用Set集合不允许重复元素的特点,通过List和Set互转,来去掉重复元素。
260 0
阿里字节技术大佬都在用的List集合去重方案!
|
JavaScript 前端开发 索引
技术文章索引
有价值文章持续更新中 WebConfig中去除 不必要的加载模块 用Asp.net写自己的服务框架 PHP中Session的使用 你必须了解的session的本质- 续篇1 – 固定会话id 你必须了解的session的本质 2013-09-21   Html5本地缓存不完全指南 ...
657 0