因为你的元素都是非常简单的容易比较的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);

解决方案 »

  1.   

    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");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));
    }
    }
      

  2.   

    System.out.println(list1.get(j)); 改为System.out.println(list1.get(i));
      

  3.   

    可以参考如下实现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中的所有元素比较,增加了很多不必要的结果
      

  4.   

    lab1:for (Object obj:list){
    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);
     }