Como Solucionar - Duvidas Array

15 respostas
R

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

15 Respostas

Grinvon

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

A

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.

danieldestro

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á... }

R

“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.

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;
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!

A

“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!

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

R

“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!

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???

danieldestro

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 );
R

Valeu Daniel

Consegui fazer, Obrigado pelas dicas

danieldestro

Como resolveu?

R
"danieldestro":
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

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);
R

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

danieldestro
String str1 = a;

String str2 = b;

Point[] pontos = new Points[3];

SuaClasse sc = new SuaClasse( str1, str2, pontos );
R
<blockquote><div class="quote-author">“danieldestro”:</div>String str1 = “a”;

String str2 = “b”;

Point[] pontos = new Points[3];

SuaClasse sc = new SuaClasse( str1, str2, pontos );</blockquote>

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???

danieldestro

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 );

Criado 7 de julho de 2004
Ultima resposta 15 de jul. de 2004
Respostas 15
Participantes 4