# Array



## julia98 (7. Feb 2017)

Meine Aufgabenstellung ist:
Erstelle eine Methode, die ein 2-dimensionales Array übergeben bekommt und
ein 1-dimensionales Array zurückgibt. Dieses Array soll die jeweilige Anzahl der Nullen in den Spalten des 2-dim. Arrays enthalten. (Man darf davon ausgehen, dass das übergebene Array rechteckig ist)

Ich habe schon etwas programmiert, aber mit der Ausgabe haut es nicht ganz hin, kann mir wer den Fehler sagen?


```
public static int[] NullArray(int[][] array) {

        int counter = 0;
        int[] array2 = new int[array.length];

        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                if (array[i][j] == 0) {
                    counter++;
                    for (int k = 0; k < array2.length; k++) {
                        array2[k] = counter;
                    }
                    counter = 0;
                }
            }
        }
        return array2;
    }
```


----------



## Flown (7. Feb 2017)

Code bitte immer in Code-Tags reinschreiben: [code=java]//JAVA CODE HERE [/code]


----------



## julia98 (7. Feb 2017)

Ok danke, wusste nicht wie das geht


----------



## VfL_Freak (8. Feb 2017)

julia98 hat gesagt.:


> aber mit der Ausgabe haut es nicht ganz hin


und was heißt das konkret? Dürfen wir das erraten??? 

Gruß Klaus


----------



## julia98 (8. Feb 2017)

[I@7852e922

das kommt bei der Ausgabe raus.


----------



## VfL_Freak (8. Feb 2017)

Das ist die Speicherreferenz auf ein Objekt!
Da ich nicht weiß, WO dur WAS ausgibst, kann ich da nicht viel zu sagen ....

Mal ins Blaue geraten: nimmst Du die Rückgabe der Methode und machst sowas wie 

```
System.out.println( dasZurückgegebeneArray )
```
??
Das würde diese Ausgabe erklären!
Du musst das Array (or what else) in einer Schleife durchlaufen und jedes Element einzeln ausgeben !!

Gruß Klaus


----------



## julia98 (8. Feb 2017)

Ok, das habe ich jetzt gemacht, aber dann stimmt es immer noch nicht.. ich habe das so gemacht:

```
public static void main(String[] args) {

        int[][] array = { { 1, 2, 3, 4, 0 }, { 0, 1, 3, 0, 2 }, { 0, 0, 3, 0, 4 }, { 0, 0, 0, 0, 0 } };

        for(int i = 0; i<array.length; i++) {

            for(int j = 0; j<array[I].length; j++) {

                System.out.println(NullArray(array));

            }

        } 

    }
```

Da kommt aber bei der Ausgabe das raus:
[I@7852e922
[I@4e25154f
[I@70dea4e
[I@5c647e05
[I@33909752
[I@55f96302
[I@3d4eac69
[I@42a57993
[I@75b84c92
[I@6bc7c054
[I@232204a1
[I@4aa298b7
[I@7d4991ad
[I@28d93b30
[I@1b6d3586
[I@4554617c
[I@74a14482
[I@1540e19d
[I@677327b6
[I@14ae5a5[/I]


----------



## VfL_Freak (8. Feb 2017)

Moin,

klar, weil Du ja auch nicht das machst, was ich oben beschrieben habe ... 



VfL_Freak hat gesagt.:


> Du musst das Array in einer Schleife durchlaufen und jedes Element einzeln ausgeben !!


Die Betonung liegt hier auf _*jedes Element*_ (des Arrays) !!
Du durchläufst jetzt zwar das Array, gibst aber zur Ausgabe nachwievor nur das gesamte Objekt an !! 

Gruß Klaus

*EDIT:*
und vielleicht solltest Du ggf. die Ausgabe auch IN die Methode legen .....


----------



## julia98 (8. Feb 2017)

achso.. ok danke jetzt hab ich es


----------

