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

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



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

 

 

 

转载于:https://my.oschina.net/u/3269611/blog/1619382

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值