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

2022-08-31 13:54:52

我有两个数组列表,例如

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

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

我如何在列表之间进行检查,以便返回中缺少的值?例如abb10/10/2014


答案 1

您可以将它们转换为集合,并对其执行集差运算。Set

喜欢这个:

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

答案 2

如果您只想在 b 中查找缺失值,可以执行以下操作:

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

return toReturn;

如果要找出任一列表中存在的值,可以执行两次上部代码。使用更改的列表。