您的位置:首页 > 编程语言 > Java开发

Java中两个List对比的算法

2015-12-30 09:45 477 查看
Java中两个List对比的算法:



//测试数据
//tdcsDdt.add("Z");
//tdcsDdt.add("B");
//tdcsDdt.add("C");
//tdmsDdt.add("D");
//tdmsDdt.add("A");
//tdmsDdt.add("F");
//java中排序与SQL中排序不一致,需要按照java中的方式重排一下;
Collections.sort(tdcsDdt);
Collections.sort(tdmsDdt);
Stringsep="========";
Stringblank="";
System.out.println("==TDCS=="+ljpym+"==TDMS==");
//记录TDMS所在位置
intkMark=0;
for(intj=0,sizej=tdcsDdt.size();j<sizej;j++){
StringtdcsDdtStr=tdcsDdt.get(j);
//记录是否进入了循环,防止kMark==tdmsDdt.size()的时候多输出一行;
booleanisInxunhuan=false;
for(intk=kMark,sizek=tdmsDdt.size();k<sizek;k++){
isInxunhuan=true;
StringtdmsDdtStr=tdmsDdt.get(k);
if(tdmsDdtStr.compareTo(tdcsDdtStr)<0){
System.out.println(blank+sep+tdmsDdtStr);
kMark++;
}
if(tdmsDdtStr.compareTo(tdcsDdtStr)==0){
System.out.println(tdcsDdtStr+sep+tdmsDdtStr);
kMark++;
break;
}
if(tdmsDdtStr.compareTo(tdcsDdtStr)>0){
System.out.println(tdcsDdtStr+sep+blank);
break;
}
}
//如果tdmsDdt循环完毕,需要把tdcsDdt的继续输出
if(kMark-tdmsDdt.size()==0&&!isInxunhuan){
System.out.println(tdcsDdtStr+sep+blank);
}
}
for(intk=kMark,sizek=tdmsDdt.size();k<sizek;k++){
StringtdmsDdtStr=tdmsDdt.get(k);
System.out.println(blank+sep+tdmsDdtStr);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: