2017-01-28 4 views
1

は最近、私はあなたがそれは重複配列を比較する方法

if(src==dup) 
    ...//print true 
else if(src!=dup) 
    ...//print false 

を使用してそれらを比較するとき二つの配列は、同じであっても、あなたはしかし、この

System.arraycopy(src,0,dup,0,src.length); 

ような配列を複製することができます考え出し常にfalseを出力します。とにかく元のものと変わらないアレイを複製すると同時に、それらの2つを正しく比較することができますか?

+0

使用する必要があります。関連するかもしれない質問がいくつかあります。 http://stackoverflow.com/questions/1564832/how-do-i-do-a-deep-copy-of-a-2d-array-in-java – jdv

答えて

1

答えとしてamahfouzが記載されているように、2つの異なる配列の参照が(あなたの投稿に書いた方法で)比較されます。

要素を比較するには、要素をループする必要があります。

あなたは輸入Java.util.Arrays、およびこれを行うことができます。

if(Arrays.equals(src, dup)) 
    System.out.println("Equal"); 
else 
    System.out.println("Not Equal"); 
0

同等性テストでは、内容ではなく参照を比較するだけなので、2つの異なる配列参照に対して常にfalseを返します。

+0

forループを使用してsrc [x]を比較しますか? dup [x]するには? – Spano

0

は、あなたが "深いコピー" を探している

Arrays.equals() 
関連する問題