私は現在Javaファイナルを勉強しており、私は単純なequals
メソッドで悩まされています。配列のequalメソッドはどのように機能しますか?
与えられた質問は
「次の印刷を何、以下の配列宣言を考える」されたと私はそれはしかし、コピーした後、真偽、真であると貼り付けるだろうと思いましたコードは答えが偽、偽、真であることを明らかにする。
私は==
がオブジェクトの同じインスタンスである場合にのみ動作することを理解していますが、最初のonがfalseである理由はわかりません。私は配列apiのメソッドを見つけることを試みたが、同じ引数を持つものを見つけることができませんでした。
これが明らかであれば、私は許してください、私は勉強している過去のカップルの夜遅くまでされており、現時点ではカフェインでかなり疲れています。
int[] d = { 1, 2, 3 };
int[] b = { 1, 2, 3 };
int[] c = d;
System.out.println(d.equals(b));
System.out.println(d == b);
System.out.println(d == c);
+1は、シーケンス/値の平等を達成するためのヒントを提供します(あなたがJon Skeetだからではありません)。 –
そして考えを完了するために、 'Arrays.equals'と' Arrays'のいくつかのオーバーロードがあります。あなたにもっと自然な平等を与えることができる「deepEquals(Object、Object)」です。 – yshavit
オブジェクトはequalsメソッドを持っています....私は思うことができないことを知っていました。私の理解を助けてくれてありがとう! – Erik