自己定义了一些名称 很不规范 还望见谅 这是自己所理解的 希望对你有用
package test;
import java.util.List;
/**
* 需求:执行的sql来自不同的数据库 放在一个dao层 至于连接数据库嘛 我们有自己的组件 统计出来自俩个数据库某俩张表的条数 展现在页面上
* 俩个list的操作: 如果元素的某个字段相同就执行数据相加操作 如果不同就进行保留,这个字段代表着唯一性
* 如 list1 元素为 1 4 8 9
* list2 元素为1 3 5 6
* 结果我就要 2 4 8 9 3 5 6
*
* @author Administrator
*
*
*
*
* service 层的方法
* @Override public List<a> list(a vo) {
* //第一个调用dao的方法
* List c = dao.c(vo);
* //第二个调用dao的方法
* List b = dao.b(vo);
* //在声明一个list
* List list = null;
* try{
* //调用合并俩个list的方法
* list = test.add( c, b);
* } catch (Exception e){
* e.printStackTrace();
* }
* //返回
* return list; }
*/
public class test {
// a 代表实体
public static List<a> add(List<a> list1, List<a> list2) {
if (list1 != null) {
for (int i = 0; i < list1.size(); i++) {
if (list2 != null) {
for (int j = 0; j < list2.size(); j++) {
// list1 和list2 都有相同的条件,通过这个条件来进行判断 相同的话执行 有关俩个list的操作
// 这个操作具体看需求 这里假设A1字段相同 对A2进行操作
if (list1.get(i).getA1().equals(list2.get(j).getA1())) {
// A1如果相同就对A2进行相加 放入list1中 我们最终返回list1 所以放入list1中
list1.get(i).setA2(list1.get(i).getA2() + list2.get(j).getA2());
break;
}
}
}
}
List<a> lglist = list1;
// 对于List2中不同的字段的处理 我们选择也是放入list1中
if (list2 != null) {
for (int j = 0; j < list2.size(); j++) {
int i = 0;
for (; i < lglist.size(); i++) {
if (list1.get(i).getA1().equals(list2.get(j).getA1())) {
break;
}
}
if (i == lglist.size()) {
list1.add(list2.get(j));
}
}
}
}
// 最终我们的到的是 俩个list 相同的进行相加操作 不同的也是放入list1中
return list1;
}
}