1

我读到您可以将数组作为参数传递给方法,但是否推荐?我的意思是,还有其他更容易接受的方法吗?

就我而言,我有 2 个类,每个类都包含一个数组,我需要检查它们是否相同或不同。所以我想在其中一个类中创建一个方法,该方法将在参数中获取一个数组,然后比较两个数组的每个值。

我不确定是否Arrays.equals():有效,因为它是一个对象数组而不仅仅是数字。

我发现了这个Java 数组比较,但它似乎比我需要做的更复杂。

4

4 回答 4

2

我不确定是否Arrays.equals()有效,因为它是一个对象数组而不仅仅是数字。

一种风格Arrays#equals需要两个Object[]作为参数。只要您的对象正确实现 equals,它就应该按预期工作。

于 2012-09-18T17:08:32.570 回答
2

1)是的,可以将数组作为参数传递,这样做绝对没有问题

2) Arrays.equals(Object[] a, Object[] b)可以检查对象数组(如果您不想简单地测试实例身份,则必须确保对象上有适当的 equals 方法)。请注意,此方法的存在是 1 的证明;)

于 2012-09-18T17:08:32.797 回答
1

尽管使用数组作为方法的参数很好,但您的用例可以通过形成java.util.Set这两个数组并使用 apache commonsCollectionUtils.isEqualCollection来检查它们是否相同来解决。

于 2012-09-18T17:09:56.860 回答
0

我不明白为什么不建议这样做。我有时更喜欢将数组而不是集合作为方法的参数传递。

于 2012-09-18T17:08:42.237 回答