2014-11-12 4 views
0

왜 그렇지 않습니까?2 차원 배열 2 개 비교 - Java

int[][] arrayOfSets = {{1,2},{9,10},{1,2},{3,5}}; 
int[][] test =  {{1,2},{9,10},{1,2},{3,5}}; 

if(arrayOfSets==test){ //{{1,2},{9,10},{1,2},{3,5}}){ 
    System.out.println("Exactly the same"); 
} 

출력은 "똑같은"이어야합니다. 또는 2 차원 배열과 2 개의 변수를 어떻게 비교할 수 있습니까? 실패한 이유를 당신은 == 그게 전부를 사용

답변

1

, 그것은 개체 검사의 동일한위한거야 그래서 사용

boolean check = Arrays.deepEquals(arrayOfSets, test); 
3

는 다차원 배열을 비교하기 위해 사용 .deepEquals이 링크는 이유를 설명

.deepEquals

그리고 다음 링크는 == 또는 .equals가 작동하지 않는 이유를 설명합니다.

.equals definition

0

== 당신이 메모리 address..In 당신이 2 개 개의 다른 배열을 선언하고 있기 때문에, 자신의 주소가 다를 수밖에이 경우 같은 것을 생각할 수있는, 즉 참조를 비교하기 때문에이 작동하지 않습니다.

배열에 {1,2}, {1,3}과 같은 연속적인 숫자가 포함되어 있지 않으므로 작은 제안이 하나 있습니다. 대신 인스턴스 번호가 2 인 객체를 사용하여 그 객체를 내부에 넣을 수 있습니다 배열