使用 JUnit 比较 ArrayList 是否相等的简单方法?

发布于 2024-08-06 01:53:43 字数 79 浏览 4 评论 0原文

使用 JUnit 比较 ArrayList 是否相等的简单方法是什么?我需要实现相等接口吗?或者有一个简单的 JUnit 方法可以使它更容易吗?

What is an easy way to compare ArrayLists for equality using JUnit? Do I need to implement the equality interface? Or is there a simple JUnit method that makes it easier?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

南渊 2024-08-13 01:53:43

对于列表相等性,您无需执行任何特殊操作,只需使用assertEquals即可。

ArrayList 和其他列表通过使用对象的 equals() 方法检查列表相应位置中的所有对象是否相等来实现 equals()。因此,您可能需要检查列表中的对象是否正确实现 equals。

You need to do nothing special for list equality, just use assertEquals.

ArrayList and other lists implement equals() by checking that all objects in the corresponding positions of the lists are equal, using the equals() method of the objects. So you might want to check that the objects in the list implement equals correctly.

过度放纵 2024-08-13 01:53:43

您可能需要查看 List.equals 的文档。

You might want to check the documentation for List.equals.

浅黛梨妆こ 2024-08-13 01:53:43

我认为这可能是一个有点太简单的答案(尽管它是正确的)。测试 ArrayList 的 equals 意味着您已经考虑了元素的相等性。如果元素是整数那就没问题了。但是,如果它们是您自己的域类的实例,那么您应该意识到围绕平等(和克隆)的陷阱。请查看:

http://www.artima.com/lejava/articles/equality。 html

获取一组关于实现平等的好技巧。另一方面:如果您需要克隆对象,请考虑使用复制构造函数而不是实现可克隆。 Cloneable 引入了一系列您可能意想不到的问题。

I think this might be a slightly too easy answer (although it is correct). Testing ArrayLists for equals implies you have given thought to equality of the elements. If the elements are Integers that is all fine. But if they are instances of your own domain classes, then you should be made aware of the pitfalls surrounding equality (and cloning). Please check out:

http://www.artima.com/lejava/articles/equality.html

for a good set of tips about implementing equality. On an aside: If you ever need to clone objects, consider the use of copy constructors instead of implementing cloneable. Cloneable introduces a whole set of problems you might not expect.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文