ホームページ > Java > &#&チュートリアル > Java で配列を比較する場合、「equals()」と「Arrays.equals()」はどのように異なりますか?

Java で配列を比較する場合、「equals()」と「Arrays.equals()」はどのように異なりますか?

Mary-Kate Olsen
リリース: 2024-12-26 02:08:09
オリジナル
401 人が閲覧しました

How Do `equals()` and `Arrays.equals()` Differ When Comparing Arrays in Java?

Java における Equals と Arrays.equals

Java で配列を扱う場合、equals メソッドと Arrays.equals メソッドの違いを理解する正確な配列を確保するために重要ですCompares.

array1.equals(array2)

この式は、2 つの配列の参照の同等性を比較します。つまり、array1 と array2 がその内容に関係なく、同じ配列オブジェクトであるかどうかをチェックします。この動作は予想どおりかもしれませんが、実際の値ではなく配列のメモリ アドレスを比較する、浅い比較を実行することに注意することが重要です。

Arrays.equals(array1, array2)

対照的に、Arrays.equals(array1, array2) は配列の詳細な比較を実行します。 コンテンツ。両方の配列の各要素を反復処理し、それらが等しいかどうかを比較します。このメソッドは、対応するすべての要素が等しい場合は true を返し、そうでない場合は false を返します。

たとえば、次の配列について考えてみましょう。

int[] array1 = {1, 2, 3};
int[] array2 = {1, 2, 3};
ログイン後にコピー

array1.equals(array2) を使用すると false が返されます。これらは異なる配列オブジェクトであるため、Arrays.equals(array1, array2) は同じものを持っているため true を返します。 content.

同様に、配列に適用された toString() メソッドは、目的の出力を提供しない可能性があります。次のコードを考えてみましょう:

int[] array3 = {4, 5, 6};
System.out.println(array3.toString());
ログイン後にコピー

これは、array3 のメモリ アドレスを表す「[I@1873311」を出力します。代わりに、Arrays.toString(array3) を使用すると、「[4, 5, 6]」が出力され、配列の内容のより有益な表現が提供されます。

equals、Arrays.equals、toString( ) は、Java での正確かつ効率的な配列処理に不可欠です。

以上がJava で配列を比較する場合、「equals()」と「Arrays.equals()」はどのように異なりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート