# Leere Stelle im Array finden und ersetzen



## karlkralle (11. Dez 2007)

Hallo Leute. 
Ich will ein element also z.B. eine Zahl einem Array hinzufügen, aber so das keine Stelle überschrieben wird sondern das 
ein leerer Index gesucht wird und diese gefüllt wird. Ich habe schon vieles Versucht mein Ansatz ist eine Schleife die solange läuft bis ein leerer Index gefunden wurde. Un wenn dieser index leer ist also 0 dann soll was reingeschrieben werden. Ich hab schon viele verschiedene Schleifen gemacht leider alle ohne Erfolg also poste ich erstmal keine weil alle falsch sind^^


----------



## maki (11. Dez 2007)

Zeig mal deine Schleife her.


----------



## Guest (11. Dez 2007)

for(int i=1; array_ != 0;i++)
        {       

                if(array == 0)
                {
                array = neuezahl;
                }
        }_


----------



## qbopa (11. Dez 2007)

vlt kann ein kleiner anfänger wie ich ja was dazu beitragen. ich hätte das mal so probiert


for (int i=0;i<Array[].length;i++)
{
          if (Array_==0)
{
Array=deinWert
}
}


keine ahnung obs so geht ^^. vlt klappts ja_


----------



## Guest (11. Dez 2007)

ok jetzt wird die zahl gespeichert aber nicht einmal sonern überall wo der index 0 ist.
Sie soll aber nur einmal gespeichert werden...


----------



## lhein (11. Dez 2007)

qbopa hat gesagt.:
			
		

> vlt kann ein kleiner anfänger wie ich ja was dazu beitragen. ich hätte das mal so probiert
> 
> 
> for (int i=0;i<Array[].length;i++)
> ...


_

wenn überhaupt, dann bitte so:



		Code:In die Zwischenablage kopieren


boolean saved = false;
for (int i=0; i<array.length && !saved; i++)
{
          if (array[i] == 0)
          {
              array[i]=deinWert;
              saved = true;
          }
}

if (!saved)
{
   System.out.println("Kein freier Platz mehr!");
}


Im Prinzip ne lustige Sache, aber ich tät hier eine Liste vorziehen. Kenne aber leider nicht den Anwendungsfall, den du hier abbilden willst.

lr_


----------



## Guest (11. Dez 2007)

also mit der 2 Bedienung mittels && wird gar nichts mehr gespeichert und ohne werden für alle Indexe die 0 als Inhalt haben ebenfalls die neue Zahl eingesetzt.


----------



## SlaterB (11. Dez 2007)

Quark


```
public class Test
{

    public static void main(String[] args)
        throws Exception
    {

        int[] array = new int[]
            {2, 2, 0, 0};
        boolean saved = false;
        for (int i = 0; i < array.length && !saved; i++)
        {
            if (array[i] == 0)
            {
                array[i] = 5;
                saved = true;
            }
        }

        if (!saved)
        {
            System.out.println("Kein freier Platz mehr!");
        }
        System.out.println(Arrays.toString(array));


    }
}
```
geht,

wenn bei dir nicht, dann musst du das schon genauer beschreiben..


----------



## ARadauer (11. Dez 2007)

ArrayList list = new ArrayList();
list.add(5);

aus fertig!   



klar geht die lösung von lr, ich denk du gibst das ergebnis falsch aus   

so gehts auch


```
boolean saved = false; 
		for (int i=0; i<array.length; i++) 
		{ 
		          if (array[i] == 0) 
		          { 
		              array[i]=deinWert;
		              saved = true;
		             break;
		          } 
		}
```

ich sag immer, for wenn ich weiß wie oft, while wenn ichs nicht weiß, (bzw mein lehrer hat das gesagt)




```
int deinWert = 5;
		int[] array = { 1, 2, 3, 4, 0, 0 };
		boolean saved = false;
		int c = 0;
		while (!saved && c < array.length) {
			if (array[c] == 0) {
				array[c] = deinWert;
				saved = true;
			}
			c++;
		}

		if (!saved) {
			System.out.println("Kein freier Platz mehr!");
		}
		for (int i = 0; i < array.length; i++)
			System.out.println(array[i]);
```



> ohne werden für alle Indexe die 0 als Inhalt haben ebenfalls die neue Zahl eingesetzt.


na warum wohl? weil er nicht aufhört, wenn er die erste gefunden hat!


----------



## karlkralle (12. Dez 2007)

Ok und noch etwas. 
Jetzt hört ja die schleife auf sobald sie bei der 1. 0 angekommen ist sie soll aber weiter machen.
Denn es kann z.B. nach einer 0 noch ne andere Zahl kommen. z.B. 1,2,3,0,5,0,7,9


----------



## karlkralle (12. Dez 2007)

ok vergest meine Frage hat sich erledigt^^ 

sorry


----------

