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

//方法1
 //自己声明list
       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;
    }

原文地址:https://www.cnblogs.com/suncos/p/11111390.html

时间: 2024-10-03 15:48:15

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

PHP中比较两个时间的大小与日期的差值

在这里我们全用到时间戳 mktime(hour,minute,second,month,day,year,[is_dst])     其参数可以从右向左省略,任何省略的参数都会被设置成本地日期和时间的当前值. 参数 描述 hour 可选.规定小时. minute 可选.规定分钟. second 可选.规定秒. month 可选.规定用数字表示的月. day 可选.规定天. year 可选.规定年.在某些系统上,合法值介于 1901 – 2038 之间.不过在 php教程 5 中已经不存在这个限制

n个数分为两组,两组数的个数尽可能相等,差值最小

题目描述:对于有n个数的数组,分为两组,这两组的数的个数尽可能相等(不超过1),同时两组的数之和的差值最小. 这个题目使用类似0-1背包问题,思路:从k个数中选i个数,求所有可能的和,并把这些和放在flag中用true表示.(k,i,flag见代码) 1 public static void main(String[] args){ 2 int[] arr = {1 , 2 , 3 , 5 , 7 , 8 , 9}; 3 int n = 7; 4 int sum = 0; 5 for(int i

算法学习(3)----求数组中大小最接近的两个元素的差

<算法设计与分析基础>习题1.2 第 9 题如下: 考虑下面这个算法,它求的是数值数组中大小最接近的两个元素的差. 算法: MinDistance(A[0..n-1]) //输入:数字数组 A[0..n-1] //输出:数组中两个大小相差最少的元素的差值 dmin <- ∞ for i <- 0 to n-1 do for j <- 0 to n-1 do if i≠j and |A[[i]-A[j]| < dmin dmin <- |A[i]-A[j]| ret

什么是差值查找?

1.插值查找与二分查找很类似,都是用于在有序的基础上查找某个元素 2.二分查找的原理是,每次都取一半,然后与mid值比较,再决定下一次查找的范围 3.设想在一本英文字典里查找某个单词,因为是根据字母序排列好的,你不会傻到采用二分查找的方法,先找到这本字典的一半,再取这本字典的四分之一...这样下去比较吧,这种效率显然不是最快的,此时就轮到我们的差值查找出场了. 4.差值公式的推导: 有序序列: 1 2,3,4,5,6,7,8,9,10 比例公式:   假设数组a[i]已经有序 (key-low)

python 集合关系运算交,差 day14

去重并创建集合(无序) python_1 = ['1','2','3'] linux_1 = ['1','2'] #python_and_linux_1 = [] #for p_name in python_1: # if p_name in linux_1: # python_and_linux_1.append(p_name) #print(python_and_linux_1) p_s = set(python_1) print(p_s) 求交集 python_1 = ['1','2','

Houdini中给火花渲染准确的运动模糊 - 给运动模糊做非线性差值的方法以及固定粒子点数的方法

估计大家都知道使用运动速度来进行运动模糊的渲染,但是往往这个方法得到的运动模糊都是线性变化的,虽然乍一看没什么问题,但是如果想要每一帧的模糊轨迹也是有曲线变化的而不是僵硬的直来直去的话,使用trail算个速度来做的运动模糊是永远做不到这一点的. 这里我想通过常用的火花(spark)的运动模糊来讲一讲我所了解的一些比较好的方法. 所谓渲染中的运动模糊无非就是差值算法.目前使用的比较多的主要有两种.第一种就是上面说到的直接使用速度来线性差值,这种方法会计算每一个点的速度方向,计算出前一帧或者后一帧的

阿里 2014-08-29 校招机试题 求一个存放整数的二叉树相差最大的两节点差值绝对值

题目:写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这颗二叉树中相差最大的两个节点间的差值绝对值.请注意程序效率. 如果是数值之差,感觉怎么着也得遍历一遍,直接修改下二叉树的基本遍历代码就可以. #include<stdio.h> #include <stdlib.h> typedef struct Node { int data; struct Node * left; struct Node * right; } BitNode, *BiTree; /* 求

有关《查找两个List中的不同元素》的问题解答与编程实践

郑海波 2013-07-08 问题: 有List<String> list1和List<String> list2,两个集合各有上万个元素,怎样查找两个集合中不同的元素呢? 问题分析: 由于每个list中都有上万个元素,如果用简单的遍历查找算法,那么至少需要10000*10000次判断比较.显然,这样做的效率极低.那么有没有比较好的方案呢?经过我的思考,想出了2个办法.请大家评判. 方法一:遍历算法的改进算法 思路:对每一个list1中的元素,都在list2中查找一下,是否重复,如

A、B两个整数集合的交集

rt,这是一个经典问题. 参考1:http://www.sysexpand.com/?path=exercises/array-intersection 参考2:http://leetcode.com/2010/03/here-is-phone-screening-question-from.html 用数组来模拟(本质上说集合中是没有重复元素的,这里用数组来模拟可以用重复元素),A.B数组长度分别为m和n.总的来说,分为以下几种方案. 方案1:两重循环判断(复杂度 O(m*n)) 暴力方法,并