2017-09-26 3 views
0

오늘은 의심의 여지가 있습니다. 1) I는 BI 차원 배열 (매트릭스 Nx를)를 인쇄하려고하고 있는데이 방법을 사용하고 :AtomicInteger 및 2 차원 배열 인쇄시 의문점

System.out.println(Arrays.toString(Matr)); 

매트릭스 전용 변수 int로했다.

이것은 결과입니다. 그 이유는 무엇입니까? 나는이 코드를 사용 0의 모든 매트릭스를 설정해야 AtomicIntegers 사용

[[[email protected], [[email protected], [[email protected], [[email protected], [[email protected], [[email protected], ........etc 

2) :

AtomicInteger[][]Matr=new AtomicInteger[n][m]; 

    for(int i=0; i<n; i++) { 
     for(int j=0; j<m; j++) { 
      Matr[i][j].set(0); 
     } 
    } 

하지만 교사의 솔루션은 다음과 같습니다 차이가

AtomicInteger[][] A = new AtomicInteger[n][m]; 
    for (int i = 0; i < A.length; i++) 
     for (int j = 0; j < A[i].length; j++) 
      A[i][j] = new AtomicInteger(0); 

있습니까? 코드가 잘못 되었나요?

+0

당신이 당신의 코드를 실행하려고 했 첫 번째 질문의 사용에 관해서는? 차이점을 확인할 수 있습니다. – Eran

+0

글쎄, 2 차원 배열을 가지고있는 것처럼 보입니다. 즉, 두 개의 문자열은 첫 번째 차원 만 문자열로 변환합니다. 배열을 포함하기 때문에 너무 많은 의미가 없습니다. 첫 번째 차원 내부의 모든 요소를 ​​대신 문자열로 변환해야합니다. 또한 대문자 변수 이름을 사용하지 마십시오. – ScriptKiddy

+0

너무 넓습니다. 관련이없는 두 가지 질문을 하나의 질문으로 삼았습니다. –

답변

0

null 객체에 값을 설정하려고 할 때 코드에서 널 포인터 예외가 발생합니다. 변수를 먼저 초기화 한 다음 값을 설정해야합니다.