哪位大哥指点下,小弟不胜感激!!!
比如说我现在有A 和B两个文档,想知道B相当于A做过了哪些改动,删过什么,增加过什么。A.txt B.txt
ID ID
1 2
2 3
3 4
6 5
7 9
8 10
10 11
11 12
这只是我想出来的例子,实际情况是用JDBC对比2个同样结构的数据库表的内容,删过什么,增加过什么,在相同ID下是否修改过什么。
比如说我现在有A 和B两个文档,想知道B相当于A做过了哪些改动,删过什么,增加过什么。A.txt B.txt
ID ID
1 2
2 3
3 4
6 5
7 9
8 10
10 11
11 12
这只是我想出来的例子,实际情况是用JDBC对比2个同样结构的数据库表的内容,删过什么,增加过什么,在相同ID下是否修改过什么。
把B文件的内容一条一条与map中的比.不过还是在修改的时候,记录下来比较好吧.
然后楼主可以根据id,再去数据库里查找具体数据的情况
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test3 { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Integer> before = new ArrayList<Integer>(); //修改前的id
before.add(1);
before.add(2);
before.add(3);
before.add(6);
before.add(7);
before.add(8);
before.add(10);
before.add(11);
ArrayList<Integer> after = new ArrayList<Integer>(); //修改后的id
after.add(2);
after.add(3);
after.add(4);
after.add(5);
after.add(9);
after.add(10);
after.add(11);
after.add(12);
ArrayList deleted = getDeleted(before,after);
ArrayList appended = getAppended(before,after);
System.out.println("deleted:"+deleted.toString());
System.out.println("appended:"+appended.toString());
}
//求出被删掉的id
static ArrayList<Integer> getDeleted(ArrayList<Integer> from, ArrayList<Integer> to){
ArrayList<Integer> result = new ArrayList<Integer>();
result.addAll(from);
for(int i=0;i<from.size();i++){
if(to.contains(from.get(i))){
result.remove(from.get(i));
}
}
return result;
}
//求出被追加的id
static ArrayList getAppended(ArrayList<Integer> from, ArrayList<Integer> to){
ArrayList<Integer> result = new ArrayList<Integer>();
result.addAll(to);
for(int i=0; i<to.size();i++){
if(from.contains(to.get(i))){
result.remove(to.get(i));
}
}
return result;
}
}
再来写这个程序
、、、、