java比较两个集合_比较Java中的两个集合

我在Java类中有两个集合.第一个集合包含以前的数据,第二个集合包含前一个集合中的更新数据.

我想比较两个集合,但我不确定有效实现它的最佳方法.两个集合将包含相同数量的项目.

然后根据我想要执行carType方法的每个集合中的carType相同.

任何帮助表示赞赏

解决方法:

很难提供帮助,因为你没有告诉我们你如何比较(等号)集合.一些想法,希望一个适合:

如果它们包含相同顺序的相同对象,则比较它们

Iterator targetIt = target.iterator();

for (Object obj:source)

if (!obj.equals(targetIt.next()))

// compare result -> false

如果它们在任何顺序中包含相同的对象,则比较它们

for (Object obj:source)

if (target.contains(obj))

// compare result -> false

查找已更改的其他集合中的元素

Iterator targetIt = target.iterator();

for (Object obj:source)

if (!obj.equals(targetIt.next())

// Element has changed

根据你的评论,这个算法会做到这一点.它收集所有已更新的汽车.如果方法结果是空列表,则两个集合包含相同顺序的相同条目.该算法依赖于Car类型上equals()的正确实现!

public List findUpdatedCars(Collection oldCars, Collection newCars)

List updatedCars = new ArrayList();

Iterator oldIt = oldCars.iterator();

for (Car newCar:newCars) {

if (!newCar.equals(oldIt.next()) {

updatedCars.add(newCar);

}

}

return updatedCars;

}

标签:java,collections

来源: https://codeday.me/bug/20191001/1837639.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值