ホームページ >Java >&#&チュートリアル >Java 配列: 「equals()」と「Arrays.equals()」のどちらを使用すべきか?

Java 配列: 「equals()」と「Arrays.equals()」のどちらを使用すべきか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-22 22:07:14941ブラウズ

Java Arrays:  When Should I Use `equals()` vs. `Arrays.equals()`?

違いを明らかにする: Java での等しいと Arrays.equals

Java で配列を扱う場合、2 つの比較方法である等しいとのニュアンスを理解することが重要です。配列と等しい。どちらの方法も異なる目的を果たし、その選択は目的の操作によって異なります。

1. quals(array1, array2)

目的: array1 と array2 がメモリ内の同じ配列インスタンスを参照しているかどうかを確認します。つまり、同じ配列オブジェクトであるかどうかを検証します。

結果:

  • array1 と array2 が同じ配列の場合、equals(array1, array2) は true を返します。
  • それ以外の場合は返します。 false.

注: これは、 == 演算子を使用して配列を比較するのと同等であり、参照の等価性もチェックされます。ただし、配列の内容は比較されないため、これは配列比較の一般的な動作ではありません。

2. Arrays.equals(array1, array2)

目的: array1 と array2 の内容を要素ごとに比較します。

結果:

  • array1 と array2 の長さが同じで、対応する要素がすべて等しい場合、 Arrays.equals(array1, array2) は true を返します。
  • それ以外の場合は、false を返します。

注: これは、配列の内容を比較するための推奨される方法です。配列内の値が同じであることを確認します。

キー違い

equals と Arrays.equals の主な違いは、その焦点にあります。 equals は配列参照を比較し、Arrays.equals は配列の内容をチェックします。

実際的な意味

コード内で配列を比較する場合、この区別を理解することが重要になります。たとえば、次のシナリオを考えてみましょう。

int[] array1 = {1, 2, 3};
int[] array2 = {1, 2, 3};
boolean equalRef = array1.equals(array2);
boolean equalContent = Arrays.equals(array1, array2);

ここで、array1 と array2 は同じ内容を持ちますが、異なる配列インスタンスです。したがって、equalRef は false になりますが、equalContent は true になります。

結論

Java の配列操作では、equals と Arrays.equals の違いを理解することが不可欠です。目的の操作に基づいて適切な方法を選択することで、開発者は正確かつ効率的な配列比較を保証できます。

以上がJava 配列: 「equals()」と「Arrays.equals()」のどちらを使用すべきか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。