这篇文章运用简单易懂的例子给大家介绍Java如何获取两个列表的交集和差集,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
交集:指的是两个列表对象中都有的元素。
<强>转化为一般问题强>
在车价管理的车辆详情页面点击保存各省行情按钮后,请求会传送一组数据到服务端,服务端把这组数据保存到一个列表对象中,然后从数据库中获取该车型之前的各省行情数据并保存到列表对象中,那么怎么找出哪些数据是要新增的,哪些数据是要删除的,又有哪些数据是要更新的呢?
如果客户端传送的数据中有的省份行情数据,而数据库中没有该省行情数据记录,则这些数据是要插入数据库中的。如果客户端传送的数据有的省份行情数据,数据库中也有改省的行情数据,则这些数据是要更新的数据。如果数据库中有的省份数据,而客户端传送的数据中没有改省份数据,则这些数据是要删除的。
经过上述分析,不难发现就是找出两个列表对象的交集和差集。例如,一个为客户端传送的数据列表对象,b为从数据库中获取的列表对象。一个中有的元素,而b中没有的元素就是要插入数据库中的数据,即a与b的差集a和b共有的元素就是要更新的数据,即a与b的交集。b中有的元素,一个中没有的就是要删除的数据,即b与的差集。
<强>程序代码强>
程序的大致思路是:利用LinkedHashMap关键值的唯一性和顺序存储的特性,把provinceId作为键值,先用一个地图添加一个列表元素,然后再去比较另一个列表对象中的元素,找出provinceId相同的对象和只有b中才有的对象. map中去除相同的关键值的对象,剩余的就是一个中独有的元素。
<强>各省行情类:强>
公共类CarProvinceMarket { 私人整数id; 私人整数carId; 私人整数provinceId; 私人双价格; 私人整数createdBy; 公共整数getCreatedBy () { 返回createdBy; } 公共空间setCreatedBy(整数createdBy) { 这一点。createdBy=createdBy; } 公共整数getId () { 返回id; } 公共空间setId(整数id) { 这一点。id=id; } 公共整数getCarId () { 返回carId; } 公共空间setCarId(整数carId) { 这一点。carId=carId; } 公共整数getProvinceId () { 返回provinceId; } 公共空间setProvinceId(整数provinceId) { 这一点。provinceId=provinceId; } 公共双getPrice () { 回报价格; } 公共空间setPrice(双价格){ 这一点。价格=价格; } }
<强>求两个列表对象交集、差集:强>
公共类ListOperation { 公共静态孔隙sameAndDifferentOperation (List,List b, List sameItems, List 关于Java如何获取两个列表的交集和差集就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。 Java如何获取两个列表的交集和差集