mport java.util.*; public class Test { public static void main(String[] args){ List <Integer> l1=new ArrayList<Integer>(); l1.add(1);l1.add(2);l1.add(3); l1.add(4);l1.add(5);l1.add(6); List <Integer> l2=new ArrayList<Integer>(); l2.add(4);l2.add(5);l2.add(6); l2.add(7);l2.add(8);l2.add(9); Set<Integer> s=new TreeSet(l1); for(Integer i:l2){ //当添加不成功的时候 说明s中已经存在该对象,直接remove掉该对象即可 if(!s.add(i)) s.remove(i); } System.out.println(s); //还可以用下面一种方法 List <Integer> temp=new ArrayList<Integer>(l1);//用来保存两者共同有的数据 temp.retainAll(l2); l1.removeAll(temp);//l1中去掉两者共同有的数据 l2.removeAll(temp);//l2中去掉两者共同有的数据 List <Integer> l3=new ArrayList<Integer>(); l3.addAll(l1); l3.addAll(l2); System.out.println(l3); } }
public static void main(String[] args) { ArrayList<Integer> list1 = new ArrayList<Integer>(); list1.add(1); list1.add(2); list1.add(3); ArrayList<Integer> list2 = new ArrayList<Integer>(); list2.add(3); list2.add(4); list2.add(5); HashSet hash = new HashSet(list2); hash.removeAll(list1); list1.addAll(hash); System.out.println(list1.size()); for(Iterator<Integer> inte=list1.iterator();inte.hasNext();){ System.out.println(inte.next().toString()); } } hashset 效率比 ArrayList高, 所以用hashset来操作
取得两个List的交集,retainAll()方法 import java.util.ArrayList; import java.util.List; public class strSplit { public static void main(String args[]) { List<String> list1 = new ArrayList<String>(); List<String> list2 = new ArrayList<String>(); list1.add("g"); list1.add("s"); list1.add("a"); list1.add("f"); list2.add("g"); list2.add("c"); list2.add("b"); list2.add("a"); list1.retainAll(list2); System.out.print(list1); } }
两个ArrayList合并,并且去掉重复数据的算法
最新推荐文章于 2023-06-28 08:56:59 发布