# int[] array mit nullen auffüllen



## java007 (22. Mrz 2010)

Hallo,

ich möchte ein "Int[] Array" mit nullen auffüllen wie zB

int array[] {1,2,3,4,5,6}    zu dem---->   int array{0,0,0,0,1,2,3,4,5,6}

sodass unabhängig vom eingangszustand das "int[] array" mit nullen aufgefüllt wird bis
eine länge von 10 erreicht wird.

vielen dank

gruß


----------



## Der Müde Joe (22. Mrz 2010)

neues Array der länge 10 anlegen und altes Array mit System.arraycopy ins neue kopieren. Der Rest ist mit 0 initialisiert.

EDIT:
ca so:

```
int[] array = {1,2,3};
int[] n = new int[10];
System.arraycopy(array, 0, n, 7, 3);
```


----------



## Mujahiddin (22. Mrz 2010)

Alternativ, um es selbst zu schreiben:


```
int[] intArr = {1, 2, 3, 4, 5};
int[] filledIntArr = new int[10];
for(int i=10; i >= 0; i++)
{
   if(i - intArr.length >= 0)
      filledIntArr[i] = intArr[intArr.length - 1 - i];
   else
      filledIntArr[i] = 0;
}
```

So ungefähr... Ist nicht getestet, aber grob müsste es passen.

E:

```
int[] intArr = {1, 2, 3, 4, 5};
int[] filledIntArr = new int[10];
for(int i=9; i >= 0; i--)
{
   if(i - intArr.length >= 0)
      filledIntArr[i] = intArr[i - (intArr.length)];
   else
      filledIntArr[i] = 0;
}
```

So muss es sein


----------



## java007 (22. Mrz 2010)

vielen dank für die schnelle weiterhilfe


----------



## faetzminator (22. Mrz 2010)

Mujahiddin hat gesagt.:


> Alternativ, um es selbst zu schreiben [...]



... was man abgesehen von einer Schulaufgabe nie machen sollte  Schneller laufender und kürzerer Code sollte als Begründung genügen.


----------



## Mujahiddin (22. Mrz 2010)

So viel schneller geht es da auch nicht mehr unbedingt ^^


----------



## eRaaaa (22. Mrz 2010)

Mujahiddin hat gesagt.:


> So viel schneller geht es da auch nicht mehr unbedingt ^^



Naja, aber das komplette Array zu durchlaufen macht auch keinen Sinn und wenn du vorher ein Array der Größe 6 hast und nun bspw. 194 Nullen auffüllen willst macht es eben keinen Sinn über alle 200 Stellen zu iterieren und an den Stelle wo eh schon 0 steht, noch einmal 0 rein zuschreiben?!


----------



## Mujahiddin (22. Mrz 2010)

eRaaaa hat gesagt.:


> Naja, aber das komplette Array zu durchlaufen macht auch keinen Sinn und wenn du vorher ein Array der Größe 6 hast und nun bspw. 194 Nullen auffüllen willst macht es eben keinen Sinn über alle 200 Stellen zu iterieren und an den Stelle wo eh schon 0 steht, noch einmal 0 rein zuschreiben?!



Tschuldigung, Meister  Hatte vergessen, dass da standardmäßig Nullen stehen.


```
int[] intArr = {1, 2, 3, 4, 5};
int[] filledIntArr = new int[10];
for(int i=9; i >= 0; i--)
{
   if(i - intArr.length >= 0)
      filledIntArr[i] = intArr[i - (intArr.length)];
   else
      break;
}
```

So besser?


----------

