62,614
社区成员
发帖
与我相关
我的任务
分享
public static void main(String[] args) throws Exception {
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中的所有元素比较,增加了很多不必要的结果
List 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);