【方法】list<?> 两个list集合 查找不同元素,求差值

//方法1
 //自己声明list
//思路,从list1中删除list2中相同的元素
//使用循环遍历对比的方式删除
//list1包含list2,list1多与list2
//结束得出list1为不相同元素
for(int i=0;i<list1.size();i++) { for(int j=0;j<list2.size();j++) { if (list1.get(i).toString().equals(list2.get(j).toString()))//查找相同的元素 { list1.remove(i);//删除list1下标为i的元素 i--; //删除下标后list元素变少需要减少下标值,list不会和数组一样占用空间 break; } } } //方法2 //获取两个集合的差集 public List<?> removeAll(List<?> src, List<?> target) { LinkedList<?> result = new LinkedList<>(src); //大集合用linkedlist HashSet<?> targetHash = new HashSet<>(target); //小集合用hashset Iterator<?> iter = result.iterator(); //采用Iterator迭代器进行数据的操作 while(iter.hasNext()){ if(targetHash.contains(iter.next())){ iter.remove(); } } return result; }

 

posted @ 2019-06-30 21:48  孙可帅  阅读(2146)  评论(0编辑  收藏  举报