因为你的元素都是非常简单的容易比较的Serializable实现直接用removeAllList list = new ArrayList();
list.add("1");
list.add("2");
List list1 = new ArrayList();
list1.add("1");
list1.add("2");
list1.add("3");
list1.add("4");
list1.add("5");
list1.removeAll(list);
System.out.println(list);
list.add("1");
list.add("2");
List list1 = new ArrayList();
list1.add("1");
list1.add("2");
list1.add("3");
list1.add("4");
list1.add("5");
list1.removeAll(list);
System.out.println(list);
list.add("1");
list.add("2");
List list1 = new ArrayList();
list1.add("1");
list1.add("2");
list1.add("3");
list1.add("4");
list1.add("5");List list2 = new ArrayList();for (int i = 0; i < list.size(); i++) {
boolean b=ture;
for (int j = 0; j < list1.size(); j++) {
if (list1.get(i).equals(list.get(j))) {
b=false;
break;
}
}
if(b){
System.out.println(list1.get(j));
}
}
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
List<String> list1 = new ArrayList<String>();
list1.add("1");
list1.add("2");
list1.add("3");
list1.add("4");
list1.add("5"); List<String> list2 = new ArrayList<String>();
int minlen = 0; // 获得公共长度
minlen = list.size() <= list1.size() ? list.size() : list1.size();
for (int i = 0; i < minlen; i++) {
if (!list.get(i).equals(list1.get(i))) {
list2.add(list.get(i));
list2.add(list1.get(i));
}
} // list长度大于list1长度
if (list.size() > minlen) {
for (int i = minlen; i < list.size(); i++) {
list2.add(list.get(i));
}
} // list1长度大于list长度
if (list1.size() > minlen) {
for (int i = minlen; i < list1.size(); i++) {
list2.add(list1.get(i));
}
}
for (String str : list2) {
System.out.println(str);
}
}
原来代码中的问题为 list中每一个元素都需要和list1中的所有元素比较,增加了很多不必要的结果
for (Object obj1:list1){
if (obj.equals(obj1)) {
continue lab1;
}
}
System.out.println(obj);
}
lab2:for (Object obj:list1){
for (Object obj1:list){
if (obj.equals(obj1)) {
continue lab2;
}
}
System.out.println(obj);
}