Array Nullwerte

virtualmatrix

Grünschnabel
Hi!

Ich habe folgendes Problem vielleicht könnt ihr mir ja helfen:

Ich würde gerne eine JList dynamisch mit Inhalten aus einer Datenbank befüllen.
Ich gehe dazu wie folgt vor:

Code:
meineKlasse meineInstanz = new meineKlasse();
String [] items = meineInstanz.meineMethode();
MeineListe = new JList(items);

Die Methode MeineMethode() sieht in etwa so aus:

Code:
String[] MeineWerte = new String[100];
.
.
.
while (result.next()){
	 
		n=n+1;
		
		MeineWerte[n] = result.getString("MeinTabellenName");
		
}
.
.
.
return MeineWerte;

Im Grunde funktioniert alles. Das Problem ist nur, dass ich wenn ich z.B. 10 Datenbankeinträge habe diese 10 Werte zurückbekomme und den Rest der Gesamtgrösse des Arrays mit Nullwerten aufgefüllt. Das bedeutet ich bekomme in der JList sehr viele "Leerzeichen" nach meinen eigentlichen Werten.Die Zuweisung

Code:
MeineListe = new JList(items);

führt wohl dazu, dass die Gesamtgröße des Arrays zugewiesen wird (inklusive der nicht belegten Null Werte) und nicht nur meine eigentlichen Werte.
Gibt es eine Möglichkeit diese Null Werte auszufiltern bzw. nur meine eigentlichen Werte in die JList zu bekommen?

Danke schon mal.
 
Aloha ...

eine einfache Möglichkeit wäre, dass du statt einem Array einen Vector oder eine ArrayList benutzt, die haben genau die passenden Methoden für solche Spielchen :)

Java:
import java.util.ArrayList;

public class ArrayListExample {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ArrayList list = new ArrayList();
		
		list.add("a"); list.add("0"); list.add("b"); list.add("0");
		list.add("c"); list.add("0"); list.add("d"); list.add("0");
		
		System.out.println("Vorher: "+list.toString());
		for(int i=0; i<list.size(); i++)
			if(list.get(i) == "0")
				list.remove(i);			
		System.out.println("Nachher: "+list.toString());
	}

}

Wenn du dann als Rückgabewert unbedingt ein Array brauchst, kannst du die Methode toArray() der ArrayList aufrufen... :)

Viel Spaß!
Gruß
Felix
 
Zurück