Problemas con String[]

pat
14 de Febrero del 2006
Hola a todos
tengo un problema (mas bien para mi problemon) y no tengo ni idea de como resolverlo, La aplicacion que esto haciendo necesita usar un array de Strings pero no se de principio la longitud de este, He intentado buscar algun metodo en java tal como add o algo asi, pero no he encontrado nada
Si alguien pudiera ayudarme o darme alguna pista de como anhadir un elemento al string, genial. Gracias
EL codigo que estoy usando es como muestro:

public String [ ] GetEnabled(){
String[ ] cadena ;
for (int i = 0;i < mainLogical.getNumPoints();i++){
if ( (mainLogical.getPointEnabled(i) ){
//this is the line which does not work, at least as i´m looking for
cadena = cadena + mainLogical.getPointName(i);
}
}
return cadena;
}

Gracias

LOD
14 de Febrero del 2006
1) tenes que inicializar cadena, asi:
cadena = new String[mainLogical.getNumPoints()];
de lo contrario cadena no tiene un array

2) La forma correcta de agregar un elemento a un array es esta:

cadena[indice] = elemento;

Tenes que usar otra variable entera como indice para cadena:
//afuera del for
int j = 0;

//adentro del for y del if
cadena[j] = mainLogical.getPointName(i);

o simplemente usar la clase Vector<String> que crece automaticamente y tiene el metodo add...

ademas, si necesitas devolver un array, Vector<String> tiene un metodo, creo que es toArray que te devuelve un array.
salu2

LOD
14 de Febrero del 2006
me olvidaba, luego de:
//adentro del for y del if
cadena[j] = mainLogical.getPointName(i);

tenes que incrementar j (tambien adentro del if)

pat
14 de Febrero del 2006
el problema con lo que me propones es ke ese valor es de 700 y solo seran 40 los ke necesito, con lo cual eso mismo es lo ke trato de evitar por posibles problemas a largo plazo de memoria. No se si se podria usar listas o algo asi. Alguna idea?