1

配列をパラメーターとしてメソッドに渡すことができると読みましたが、推奨されますか? 私が言いたいのは、より受け入れられる他の方法はありますか?

私の場合、それぞれが配列を含む 2 つのクラスがあり、両方が同じか異なるかを確認する必要があります。そこで、クラスの 1 つに、配列をパラメーターとして取り、2 つの配列のすべての値を比較するメソッドを作成することを考えました。

Arrays.equals():単なる数値ではなくオブジェクト配列であるため、機能するかどうかはわかりません。

このJava Array Comparisonを見つけましたが、必要な作業よりも複雑なようです。

4

4 に答える 4

2

Arrays.equals()単なる数値ではなくオブジェクト配列であるため、機能するかどうかはわかりません。

パラメーターとして2 つを取るフレーバーArrays#equalsが 1 つありObject[]ます。オブジェクトが equals を適切に実装している限り、期待どおりに動作するはずです。

于 2012-09-18T17:08:32.570 に答える
2

1) はい、配列をパラメーターとして渡すことは問題ありません。そうすることにはまったく問題はありません。

2) Arrays.equals(Object[] a, Object[] b)は Object 配列をチェックできます (単にインスタンス ID をテストしたくない場合は、オブジェクトに適切な equals メソッドがあることを確認する必要があります)。このメソッドの存在は 1 の証明であることに注意してください ;)

于 2012-09-18T17:08:32.797 に答える
1

配列をメソッドのパラメーターとして使用することは問題ありませんがjava.util.Set、これら 2 つの配列を形成し、apache commonsCollectionUtils.isEqualCollectionを使用してそれらが同じかどうかを確認することで、ユース ケースを解決できます。

于 2012-09-18T17:09:56.860 に答える
0

これが推奨されない理由がわかりません。メソッドへの引数として、コレクションよりも配列を渡す方が好きな場合があります。

于 2012-09-18T17:08:42.237 に答える