两个List,去掉反复的。remove()

两个List,去掉重复的。remove()public static void main(String[] args) {//第一种:List每remove掉一个元素

两个List,去掉重复的。remove()

public static void main(String[] args) {//第一种:List每remove掉一个元素以后,//后面的元素都会向前移动,此时如果执行i=i+1,//则刚刚移过来的元素没有被读取。String str1 = new String("abcde1");String str2 = new String("abcde2");String str3 = new String("abcde3");String str4 = new String("abcde4");String str5 = new String("abcde5");List list = new ArrayList();list.add(str1);list.add(str2);list.add(str3);list.add(str4);list.add(str5);System.out.println("list.size()=" + list.size());//每移除一个元素以后再把i移回来for (int i = 0; i < list.size(); i++) {if(((String) list.get(i)).contains("abcde1")) {list.remove(i);i--;}}System.out.println("after remove:list.size()=" + list.size());//第二种:定义一个空的Set,把两个list中的元素依次往这个set中存放,//Set中的元素是不重复的ArrayList<String> l1 = new ArrayList<String>();ArrayList<String> l2 = new ArrayList<String>();l1.add("1");l1.add("2");l1.add("3");l1.add("4");l1.add("5");l2.add("3");l2.add("4");l2.add("5");l2.add("6");l2.add("7");/*l1.add(1);l1.add(2);l1.add(3);l1.add(4);l2.add(3);l2.add(4);l2.add(5);l2.add(6);*/Set set = new HashSet();for (String i : l1){set.add(i); }for(String i : l2){set.add(i); }ArrayList<String> l3 = new ArrayList<String>(set);Collections.sort(l3);   //这里排序System.out.println(l3);//第三种: List <String> temp=new ArrayList<String>(l1);//用来保存两者共同有的数据  temp.retainAll(l2);  l1.removeAll(temp);//l1中去掉两者共同有的数据  l2.removeAll(temp);//l2中去掉两者共同有的数据    List <String> l5=new ArrayList<String>();  l5.addAll(l1);  l5.addAll(l2);  System.out.println(l5); //第四种:用SET   Set s = new HashSet(l1);//将1放到Set中  for(String i : l2){  //l2添加到set中不成功的时 ,说明s中已经存在该对象,直接remove掉该对象即可  if(!s.add(i)){  s.remove(i);  }  }  System.out.println(s);}

?