Como Solucionar - Duvidas Array

Galera,

Tenho um array dessa forma

posicao[0] NomeFuncionario1
posicao[1] SobrenomeFuncionario1
posição[2] IdadeFuncionario1
posicao[3] NomeFuncionario2
posicao[4] SobrenomeFuncionario2
posição[5] IdadeFuncionario2

Ou seja, tenho que percorrer meu array e cada mudança do funcionario tenho que criar um objeto Funcionario com os campos (String,String,int)
Como devo fazer???

rocharrv

Nao seria melhor criar um array multimensional, do qual vc apontava o indice para outro array que continha apenas campos?

Os dados que vc possui no array poder ser excluídos ?

P.ex. Exibe um funcionário ( exclui funcionário ) exibeo outro.

Eu utilizei um ArrayList e assim q exibia a informação eu destruía uma faixa de informações para que sempre as mesmas posições fossem exibidas.

for( int i=0; i<posicao.length; i++ ) { Funcionario f = new Funcionario(); f.setNome( posicao[i] ); f.setSobrenome( posicao[++i] ); f.setIdade( Integer.parseInt( posicao[++i] ) ); //agora faça algo com o seu "f".. coloque num List, ou sei lá... }

[quote=“alexfb”]Os dados que vc possui no array poder ser excluídos ?

P.ex. Exibe um funcionário ( exclui funcionário ) exibeo outro.

Eu utilizei um ArrayList e assim q exibia a informação eu destruía uma faixa de informações para que sempre as mesmas posições fossem exibidas.[/quote]

Alex,
Não poderei excluir nenhum Funcionario, pois preciso de cada um para construir uma applet,
Segue um pedaço do codigo, nesse exemplo ele percorre o array de campos e em cada posicao ele armazena o conteudo em um outro array que é o Orgao.
Porém qdo ele preencher as 5 posições do Array, ele instancia um novo
Estou com um problema nesse cod. pois qdo ele entra no IF e instancia um novo array, a minha posição orgao[i] terá que voltar para zero,
Como devo fazer isso???

Obrigado

Rocha

String listaOrgaos = new String(“210,RPBC,1,320,150;230,REDUC,1,980,590;”);
StringTokenizer st = new StringTokenizer(listaOrgaos,",;");
String campos[] = new String[200];
for (int j = 0; st.hasMoreTokens(); j++) {
campos[j] = st.nextToken();
}
int controle = 0;
String[] orgao = new String[5];
for(int i =0; i <= campos.length;i++){
if(controle == 5){
orgao = new String[5];
//i=0;
}
orgao[i] = campos[i];
System.out.println(“novo–>” + orgao[i].toString());
controle = controle + 1;

O que esta variável “controle” está fazendo aí?
Dá uma revisada no seu código, pois parece que vc está com erros de lógica.

Boa sorte!

[quote=“danieldestro”]O que esta variável “controle” está fazendo aí?
Dá uma revisada no seu código, pois parece que vc está com erros de lógica.

Boa sorte![/quote]

Kra…

O daniel têm toda razão… esta variável controle não deveria fazer parte deste bloco. Acredito que vc deve ter se confundido. Talvez a variável controle sirva para outras coisas e não para iniciar um determinado procedimento.

Outra dica…

Utilize a marca de código para postar os mesmos

Qualquer dúvida é só postar

[quote=“danieldestro”]O que esta variável “controle” está fazendo aí?
Dá uma revisada no seu código, pois parece que vc está com erros de lógica.

Boa sorte![/quote]

Daniel, dado o Codigo

String listaOrgaos = new String("210,RPBC,1,320,150;230,REDUC,1,980,590"); StringTokenizer st = new StringTokenizer(listaOrgaos,",;"); String campos[] = new String[15]; for (int j = 0; st.hasMoreTokens(); j++) { campos[j] = st.nextToken(); } String[] orgao = new String[5]; for(int i =0; i <= campos.length;i++){ orgao[i] = campos[i]; f = new Funcionario(); f.setCode(orgao[i]); f.setName(orgao[++i]); f.setType(Integer.parseInt(orgao[++i])); f.setX(Integer.parseInt(orgao[++i])); f.setY(Integer.parseInt(orgao[++i]));*/

Como é que vou saber que, dado o quinto Elemento do meu array ele tem que criar o Objeto Funcionarios, e após o Quinto Elemento ele faz parte do Segundo Funcionário???
Vc entendeu a pergunta???

Se você que fez o sistema não sabe, eu vou saber menos ainda.

Se há realmente a necessidade de você trafegar um array com os dados dos funcionários em série, arrume uma forma de marcar isso, ou mesmo conheça a estrutura sequencial destes dados. Exemplo:

Se no seu array, você, sequencialmente, coloca os dados de ID, NOME e IDADE, e logo em seguida os dados do proximo funcionário, então você sabe que a cada 3 indices do array vc tem um Funcionario. Se forem 5 indices, entao vc sabe que é cinco. Você, ou alguem, tem que definir isso.

Ainda, se vc TEM MESMO que usar um array, porque não fazer assim: Cada indica do array representa um funcionario, onde cada indice tem um outro array soh com os dados do funcionario:

Object[] funcs = new Object[3];

funcs[0] = new String[3];
funcs[0][0] = “id1”;
funcs[0][1] = “nome1”;
funcs[0][2] = “idade1”;

funcs[1] = new String[3];
funcs[1][0] = “id2”;
funcs[1][1] = “nome2”;
funcs[1][2] = “idade2”;

funcs[2] = new String[3];
funcs[2][0] = “id3”;
funcs[2][1] = “nome3”;
funcs[2][2] = “idade3”;

Ou, melhor ainda, use o proprio objeto Funcionario com uma coleção.

List lst = new ArrayList();
Funcionario f = new Funcionario();
f.setId( 1 );
f.setNome( “Fulano” );
f.setIdade( 10 );
lst.add( f );

f = new Funcionario();
f.setId( 2 );
f.setNome( “Ciclano” );
f.setIdade( 20 );
lst.add( f );

f = new Funcionario();
f.setId( 3 );
f.setNome( “Beltrano” );
f.setIdade( 30 );
lst.add( f );

Valeu Daniel

Consegui fazer, Obrigado pelas dicas

Como resolveu?

Fiz, da segunda forma que vc tinha passado, percorri meu array e a cada posição fui passando para o construtor e logo em seguida adicionei no ArrayList
Ou seja, a cada posição do meu ArrayList eu tinha um objeto com seus atributos

Valeu mesmo, segue o codigo

[code]StringTokenizer st = new StringTokenizer(listaOrgaos,",;");
String campos[] = new String[st.countTokens()];
System.out.println(“ValorArray” + campos.length);

for (int j = 0; st.hasMoreTokens(); j++) {
campos[j] = st.nextToken();
System.out.println(“Orgao:” + campos[j]);
}
for (int i = 0; i < campos.length; i++) {
Facility fac = new Facility(campos[i], campos[++i],
Integer.parseInt(campos[++i]),
Integer.parseInt(campos[++i]),
Integer.parseInt(campos[++i]));
list.add(fac);[/code]

Daniel, não querendo abusar, mas abusando, tenho um outra dúvida

Conf. cod. que enviei na ultima mensagem, tenho que fazer quase a mesma coisa para uma outra classe, só que ao invéz de passar no Construtor Duas String e 3 Inteiros(conf.codigo), terei que passar DUAS STRING e um Array de Point , ou seja ,dada uma String posso ter n posições para construir um caminho
Exemplo da String
str1 = “001,nome,pos1X,pos1Y” ou posso ter tb
str1 = “001,nome,pos1X,pos1Y,pos2X,pos2Y,pos3X,pos3Y”

como devo passar uma array de Points no construtor???

rocha

String str1 = “a”;
String str2 = “b”;
Point[] pontos = new Points[3];
SuaClasse sc = new SuaClasse( str1, str2, pontos );

[quote=“danieldestro”]String str1 = “a”;
String str2 = “b”;
Point[] pontos = new Points[3];
SuaClasse sc = new SuaClasse( str1, str2, pontos );[/quote]

OK!!

olha só
O lance é parecido como o Codigo que postei, porém eu consigo "pegar " o conteudo de um array de String e armazenar o mesmo em um Array do tipo Point???

Esse tipo point é um tipo que vc criou? ou o Point do pacote do java (j2d)?

Poder pode sim… dá uma pensadinha como vc pode trasnformar.

Exe:

para cada item String
new Point( valorStringRecuperado );