# Array Elemente löschen



## Max (21. Mrz 2004)

Hallo Zusammen,
Gibt's ne Möglichkeit bestimmte Elemente aus einem Array zu löschen?

also etwa 

```
int []zahlen =new int(100);
```
einzelne Elemete zu löschen, also z.B. das 2te, so dass das array dann nur noch aus den verbleibenden 99 Elemente besteht?

Bin in der APi nicht fündig geworden, was wahrscheinlich weniger an der API als mehr an mir liegen dürfte :wink: 
Thanks Max


----------



## Beni (22. Mrz 2004)

Ein Array hat eine bestimmte Grösse die man nicht mehr ändern kann. Deshalb geht das nicht (es sei denn, du machst einen neuen Array und ersetzt den alten).

Du kannst vielleicht die Collections verwenden, also all die Klassen in java.util.*

mfg Beni


----------



## Anubis (23. Mrz 2004)

Du kannst bei deinem Hundert-Elementrigen Array einfach von hinten durchkopieren:

```
for(int i = stelle;i < zahlen.length-1; i++) {
	zahlen[i] = zahlen[i+1];
}
```
stelle gibt die Position des zu löschenden Elementes an.


----------



## citizen_erased (24. Mrz 2004)

in der schleife wird das letzte element nicht erreicht.
ausserdem ist nach der schleife  die länge von "zahlen" immer noch gleich und das letzte und vorletzte element sind identisch.

versuche es mal damit:

```
public int[] removeOneElement(int[] currentArray, int removeIndex)
	{
		int size = currentArray.length;
		int[] resultArray = new int[size-1];	
		int resulArrayCount = 0;
		for(int i = 0;i < size; i++) 
		{			
			if (i!=removeIndex)
			{				
				
				resultArray[resulArrayCount] = currentArray[i];
				resulArrayCount++;
			}
			
		}
		return resultArray;
	}
```

aufruf:

```
zahlen = removeOneElement(zahlen,2);
```


----------



## Reality (24. Mrz 2004)

Der letzte Index kannst du dann mit zahlen[100]=null; löschen. Der CorbageCollector oder wie der auch heisst, merkt das und löscht dann den Array automatisch.

Liebe Grüße
Reality


----------



## Beni (24. Mrz 2004)

Aber nicht bei einem int, weil das kein Objekt ist. Und leider bleiben dann immer noch 100 Stellen im Array :cry:


----------



## Anubis (27. Mrz 2004)

citizen_erased hat gesagt.:
			
		

> in der schleife wird das letzte element nicht erreicht.
> ausserdem ist nach der schleife  die länge von "zahlen" immer noch gleich und das letzte und vorletzte element sind identisch.



Stimmt hab ich übersehen


----------

