【发布时间】:2018-03-30 04:24:51
【问题描述】:
让我们从以下列表开始:
List<Double> firstList = new ArrayList<>();
firstList.add(2.0);
firstList.add(3.0);
List<Double> secondList = new ArrayList<>();
secondList .add(2.0000000001);
secondList .add(2.99999999994);
我知道我可以使用蛮力一一比较每个元素。当然,我已经检查过两个列表的元素数量是否相同。
boolean isEqual = true;
for (int i = 0; i < firstList.size(); i++) {
isEqual &= Math.abs(firstList.get(i) - secondList.get(i)) < 1.0e-6;
}
return isEqual;
我的问题:有没有办法使用 lambda 表达式比较这两个双精度值列表?使用任何其他类型的对象似乎都很容易,但对于双打则不然。我需要检查这两个列表在数值上是否相等。
提前致谢。
【问题讨论】:
-
为什么你认为 lambdas 是必要的?你所拥有的一切都很好。
-
顺序重要吗?
-
@Joe C 我知道这很好用。我很想知道如何使用 lambdas 做同样的事情。
-
@clinomaniac 是的,顺序很重要。
标签: java lambda comparison