在 Java 中使用 Stream API、Lambdas 等比较两个集合是否相等(相同的条目,相同的顺序)

Compare two collections for being equal (same entries, same order) using Stream API, Lambdas etc. in Java

我用谷歌搜索了一些 SO 示例,但它们只考虑 Java 1.7。我想使用 verion 8 功能来实现它。是否有某种最佳实践甚至现成的方法来做到这一点?我不能罚款。到目前为止,对于给定的两个集合(变量名称 'first' 和 'second'),我只能想到某事。像这样:

first.forEach(first -> first.equals(second));

有什么建议吗?

更新 我尝试比较的两种类型的集合是 Set 和 Collection 本身。

如果您想比较值和顺序是否相同,您可以使用 .equals() :

List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list3 = Arrays.asList(2, 1, 3, 4, 5);

System.out.println(list1.equals(list2));
System.out.println(list1.equals(list3));

输出:

true
false