# 2 dimensionales Array



## El Hadji (24. Jan 2012)

Servus Community,
Ich habe folgendes Problem.
Und zwar haben wir ein 2 dimensionales Array erstellt. Mit 8 Spalten (die jeweils für ein zufälliges Individum stehen) und i Zeilen.
Und jetzt will ich ein neues 2 dimensionales Array erstellen, indem nicht alle Individuen vorkommen. Das Problem ist jetzt, dass ich nicht weiß wie ich auf die Array von oben zugreifen kann. Wie funktioniert das genau.
mfg El Hadji


----------



## Gast2 (24. Jan 2012)

> Das Problem ist jetzt, dass ich nicht weiß wie ich auf die Array von oben zugreifen kann. Wie funktioniert das genau.


Hm, sind grundlagen... Wenn dein Array individuen heißt, dann greifst du so aus die werte zu:

```
individuen[zeile][spalte]
```


----------



## El Hadji (24. Jan 2012)

ja wir haben das ursprüngliche 2 dimensionale arra so definiert
[JAVA=42]this.dasarray = new int_[8];

for(int j = 0; j<i; j++)
       { 

             for(int g =0; g<8; g++)
             {
                dasarray[j][g] = random.nextInt(k);[/code]

und die 2te Array mit 
[JAVA=42]
private int paarungspool[][];

   double start =0;
        double mittelwert =0;
        double untermittelwert = 0;
        this.paarungspool = new int [unterermittelwert][8];
        for(int x= 0;x<i;x++)
        {
            start = start + relativeFitness[x];

        }

        mittelwert=start/i;


        for(int x=0;x<i;x++)
        {
            if(relativeFitness[x]<mittelwert)
            {
                untermittelwert ++;
                for(int y=0;y<untermittelwert;y++)
                {
                    for(int w=0;w<8;w++)
                    {
                        paarungspool[w][y]=dasarray[g];
                    }
                }
            }[/code]
doch dann bekommen ich immer eine out of Bounds Fehlermeldung_


----------



## HimBromBeere (24. Jan 2012)

Deswegen:


```
double untermittelwert = 0;
this.paarungspool = new int [unterermittelwert][8];
```


----------



## El Hadji (24. Jan 2012)

wieso deswegen?
weil ich double und integer Werte mische?


----------



## HimBromBeere (24. Jan 2012)

Nö, das würde bestenfalls eine Warnung ausspucken. 
Nein, weil dein Array durch  unterMittelwert = 0 null Zeilen besitzt...


----------



## Kiri (24. Jan 2012)

du hast da einmal 
	
	
	
	





```
untermittelwert
```
 und einmal 
	
	
	
	





```
unterermittelwert
```
 stehen


----------



## El Hadji (24. Jan 2012)

ok, dass mit der Varianle untermittelwert habe ich gelöst, Aber wie greife ich jetzt definitiv nur auf eine Zeile aus der oberen Array zurück 
[JAVA=42] public void gibPaarungsPool()
    {
        double start =0;
        double mittelwert =0;
        int untermittelwert = 0;
        for(int x= 0;x<i;x++)
        {
            start = start + relativeFitness[x];

        }

        mittelwert=start/i;

       for(int x = 0; x < i; x++)
       if(relativeFitness[x]<mittelwert)
       {
           untermittelwert++;
       }

       paarungspool = new int [untermittelwert][8];

           for(int p=0;p<8;p++)
           {
           paarungspool[untermittelwert][p] = dasarray_[g];
           }[/code]_


----------



## insane80 (24. Jan 2012)

Wurde ja weiter oben schon geschrieben:



EikeB hat gesagt.:


> Hm, sind grundlagen... Wenn dein Array individuen heißt, dann greifst du so aus die werte zu:
> 
> ```
> individuen[zeile][spalte]
> ```



Willst Du z.B. durch die erste Zeile iterieren:

```
individuen[0][spalte]
```
Und 
	
	
	
	





```
spalte
```
 dann für die einzelnen Elemente so lange hochzählen, wie die Zeile lang ist.


----------



## bERt0r (24. Jan 2012)

Ein int [5][5] Array ist nicht wirklich ein 5x5 Feld, sondern ein Array, in dem 5 Arrays liegen, von denen jedes 5 ints hält.
Das heisst, wenn du array[0] abfragst, erhältst du ein Array aus 5 ints.


----------

