ArrayList de String

Estava eu feliz e contente quando me deparei com o seguinte problema.
Precisava fazer uma matriz. Tendo isso em vista fiz o seguinte.

[color=“blue”]String strArray[] = new String[];
ArrayList arrCargo = new ArrayList();

int intrequerido = Integer.parseInt(request.getParameter(“contador”));

for(i=0;i<intrequerido;i++){
for(int Colunas=0;Colunas<intNColunas;Colunas++){
strArray[Colunas]=
(request.getParameter(“habi”+i+Colunas)==null)?“0”:request.getParameter(“habi”+i+Colunas));
}
arrCargo.add(new String(strArray.toString()));
}[/color]

/* Tranquilo?? Ai para recuperar devolta o Array de String eu fiz uns forzinhos e tudo mais, porem a dificuldade é que no codigo */

[color=“blue”]String strTempNivel[] = arrCargo.get©.toString();[/color]

/* A conversão nunca funciona.
A pergunta é:

[color=“blue”]arrCargo.add(new String(strArray.toString()));[/color]
Isso foi o mais certo?
Nao deveria ser apenas
[color=“blue”]arrCargo.add(new String(strArray)); [/color] ??? pq não?
e para recuperar não deveria ser
[color=“blue”]String strTempNivel[] = arrCargo.get©; [/color]??
Jah que o objeto q esta na linha do arrCargo é uma String?
OU na pior das hipoteses
[color=“blue”]String strTempNivel[] = (String)arrCargo.get©; [/color]???

O Mundo complicado…
Papai é que era feliz mexendo em dbase.

[color=“red”](cv, to usando ArrayList e não Vector… viu :-p)[/color]

faz direto

arrCargo.add(strArray);

para ler

String[] strArray2 = (String[]) arrCargo.get(0); 8)

String na verdade é um objeto e não um tipo primitivo, então ArrayList aceita numa boa

Então Eddie.

Como tá dentro de um for eu não posso fazer isso.

for(int i=0;i<10;i++){
strArray={“Valor :”,i+3};
arrCargo.add(strArray);
}

Isso vai fazer com que todas as 10 posições do ArrayList sejam iguais, pq no arrCargo.add ele coloca a referencia pro objeto strArray, e como eu mudo o valor do strArray os 10 itens tem seu valor mudado.

Bom… é isso não é?
Pelomenos com Vector é ehehe
But tks

Use um array just-in-time pra isso…

strArray = new String[]{"Valor :", Integer.toString(i+ 3)};

Diogenes,

Entao, nao da isso, pois como esta no primeiro post, os valores da String de Array sao definidos em momentos distintos (dois for’s encadeados), e a atribuicao do StringArray pro ArrayList acontece no primeiro for.

A ideia eh a seguinte

Cada linha do ArrayList vai conter uma String com o seguintes valores (1,0,0,1) (a ordem pode nao ser esta).
Mas como a quantidade dos valores no StringArray eh variavel (de acordo com o banco) entao nao posso fazer nda estatico. A ideia eh que fique assim

L0 --> 1,1,0,0
L1 --> 0,0,0,1
L2 --> 1,1,1,1
L3 --> 0,1,1,0

Onde Lx eh a linha do ArrayList e {1,1,1,1} sao os valores da String