# Arraygröße anpassen



## Schaaaf (26. Jan 2012)

Hallo,

ich möchte ein Integer-Array erstellen :


```
MyArray = new int[]
MyArray = new int[] {???};
```

Hier sollen nach und nach Werte hinzukommen und sich bei jedem neuen Eintrag die Größe des Arrays natürlich erhöhen. Geht das? Bzw. wie muss ich das am Anfang dann init.??

Danke für rasche Hilfe.


----------



## nrg (26. Jan 2012)

nimm ne ArrayList<Integer>


----------



## Camino (26. Jan 2012)

Hallo, Arrays lassen sich nicht nachträglich erweitern. Aber mit einer ArrayList geht das wohl.


----------



## HimBromBeere (26. Jan 2012)

Wenn du aber unbedingt ein Array verwenden willst, musst du halt den gesamten Inhalt in ein neues anders dimensioniertes Array kopieren, Element für Element. 
Elegant klingt anders.


----------



## bygones (26. Jan 2012)

HimBromBeere hat gesagt.:


> Wenn du aber unbedingt ein Array verwenden willst, musst du halt den gesamten Inhalt in ein neues anders dimensioniertes Array kopieren, Element für Element.
> Elegant klingt anders.


oder eben System#arraycopy wie es die ArrayList auch macht


----------



## AlexSpritze (26. Jan 2012)

HimBromBeere hat gesagt.:


> .. musst du halt den gesamten Inhalt in ein neues anders dimensioniertes Array kopieren, Element für Element.
> Elegant klingt anders.



mit 
	
	
	
	





```
System.arraycopy
```
 geht das elegant, und etwas anderes macht ArrayList auch nicht:

(Aus ArrayList.java)

```
public void add(int index, E element) {
	if (index > size || index < 0)
	    throw new IndexOutOfBoundsException(
		"Index: "+index+", Size: "+size);

	ensureCapacity(size+1);  // Increments modCount!!
	System.arraycopy(elementData, index, elementData, index + 1,
			 size - index);
	elementData[index] = element;
	size++;
    }
```


----------



## nrg (26. Jan 2012)

für was, wenn es die ArrayList bereits macht? Ein Argument wäre höchstens primitive Listen aber da gibt es auch schon was fertiges...


----------

