2017-09-26 1 views
0

Ich habe heute zwei Zweifel. 1) Ich versuche, eine zweidimensionale Anordnung (Matrix Nx) zu drucken, und ich bin mit dieser Methode:Zweifel am AtomicInteger und beim Drucken eines zweidimensionalen Arrays

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

die Matrix nur Variablen int.

Dies ist die Ausgabe, warum?

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

2) Mit AtomicIntegers ich alle Matrix auf 0. ich diesen Code verwendet zu setzen haben:

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); 
     } 
    } 

aber der Lehrer-Lösung ist:

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); 

Gibt es Unterschiede? Ist mein Code falsch?

+0

Haben Sie versucht, Ihren Code ausführen? Du wirst den Unterschied sehen. – Eran

+0

Nun, es sieht so aus, als ob Sie ein zweidimensionales Array haben, was bedeutet, dass zwei Strings nur die erste Dimension in einen String verwandeln, da es immer noch Arrays enthält, die keinen Sinn ergeben. Sie müssen stattdessen alle Elemente innerhalb der ersten Dimension in Strings verwandeln. Verwenden Sie auch keine Großbuchstaben-Variablennamen. – ScriptKiddy

+0

Zu breit. Sie haben zwei nicht zusammenhängende Fragen als eine einzige Frage gestellt. –

Antwort

0

Ihr Code wird eine Nullzeigerausnahme auslösen, während er versucht, einen Wert für ein Nullobjekt festzulegen. Sie müssen zuerst die Variable initialisieren und dann den Wert festlegen.

0

In Bezug auf Ihre erste Frage Verwendung

Verwandte Themen