如何返回两个列表之间的差异?

新手上路,请多包涵

我有两个数组列表,例如

List<Date> a;
contains : 10/10/2014, 10/11/2016

List<Date> b;
contains : 10/10/2016

How can i do a check between list a and b so the value that is missing in b is returned?eg 10/10/2014

原文由 Rory Lester 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 568
2 个回答

您可以将它们转换为 Set 集合,并对它们执行集差操作。

像这样:

 Set<Date> ad = new HashSet<Date>(a);
Set<Date> bd = new HashSet<Date>(b);
ad.removeAll(bd);

原文由 Pablo Santa Cruz 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果你只想在 b 中查找缺失值,你可以这样做:

 List toReturn = new ArrayList(a);
toReturn.removeAll(b);

return toReturn;

如果你想找出出现在任一列表中的值,你可以执行上面的代码两次。更改列表。

原文由 Denis Lukenich 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题