用最基本的方式写了一个很龊的function,为的是从listA中取出不同于listB的数据,当然有很多更好的方法来实现,权当抛砖引玉了。
Come On. 来吧,大家讨论讨论,互相学习。
如下:
public static List<String>removeItems(List<String> listA,List<String> listB,int index){
List<String> _items = new ArrayList<String>();
if(listB.size() == 0) {
for ( inti = 0; i < listA.size(); i++) {
_items.add(listA.get(i));
}
}elseif(listA.size() == listB.size()){
}else {
for (int j = index; j < listB.size(); j++) {
for( int i = 0; i < listA.size(); i++) {
if (listA.get(i) != listB.get(j)) {
_items.add(listA.get(i));
//打印出listA中不同于listB的数据。
System.out.println(index+":" + _items);
}
}
return removeItems(_items,listB,index+1);
}
}
return_items ;
}
public static void main(String[] args){
List<String> listA = new ArrayList<String>();
listA.add("短期");
listA.add("长期");
listA.add("永久1");
listA.add("永久2");
List<String> list0 = newArrayList<String>();
List<String> list1 = newArrayList<String>();
list1.add( "长期");
list1.add( "永久1");
List<String> list2 = newArrayList<String>();
list2.add( "短期");
list2.add( "永久1");
list2.add( "永久2");
List<String> list3 = newArrayList<String>();
list3.add( "短期");
list3.add( "长期");
list3.add( "永久1");
list3.add( "永久2");
List<String> result = removeItems(listA,list3,0);
}