情景:
服务器这边数据保存运营商的套餐列表,服务器根据运营商的套餐变更而变更
当运营商删除套餐,服务器这边删除对应套餐,当运营商新增套餐,服务器新增对应套餐,不变的套餐保持不变(服务器这边删除套餐最好是逻辑删除)
package testt;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
//套餐:1(套餐)2(套餐)依次类推
//1是原来的 (服务器这边有,运营商这边也有。不需要变更的套餐)
//2是新增的(服务器这边没有,运营商这边有。需要新增的套餐)
//3是原来的(服务器这边有,运营商这边也有。不需要变更的套餐)
//4是需要删除的(服务器这边有,运营商这边没有,需要在服务器这边逻辑删除的套餐)
//逻辑
// 运营商数据 数据库数据
// 1 1
// 2 3
// 3 4
List<Integer> yun=new ArrayList<Integer>();//运营商
yun.add(1);
yun.add(2);
yun.add(3);
List<Integer> data=new ArrayList<Integer>();//服务器
data.add(1);
data.add(3);
data.add(4);
List<Integer> add=new ArrayList<Integer>();//需要新增的数据
List<Integer> delete=new ArrayList<Integer>();//需要删除的数据
List<Integer> hold=new ArrayList<Integer>();//需要保持不变的数据
for(Integer y:yun){
boolean flag=false;
for(Integer d:data){
if(y.equals(d)){
flag=true;
}
}
if(flag){//存在
hold.add(y);
}else{//不存在
add.add(y);
}
}
for(Integer d:data){
boolean flag=false;
for(Integer y:yun){
if(d.equals(y)){
flag=true;
}
}
if(!flag){//不存在
delete.add(d);
}
}
for(Integer a:add){
System.out.println("新增="+a);
}
for(Integer d:delete){
System.out.println("删除="+d);
}
for(Integer c:hold){
System.out.println("不变="+c);
}
}
}
新增=2
删除=4
不变=1
不变=3