Eu tenho vetor (chamado vetor) do tipo Map. Minhas Map guardam objetos que são ordenados por uma string chamada id.
Ou seja, em cada indice do meu vetor eu tenho uma arvore com objetos de uma classe q eu criei.
eu também tenho um vetor bidimensional chamado x. Eu quero inserir somentes os ids das minhas arvores nele. Assim, os ids que estão nas arvores do indice 0 do vetor eu quero inserir no x[0][0], x[0][1], assim sucessivamente.
Eu escrevi esse código, mas ele não aceita a linha que eu sinalizei com um ***
Alguém sabe o pq?
publicvoidtreeToArray(){Stringx[][]=newString[dm.getQtdTipos()][];for(inti=0;i<vetor.length;i++){x[i]=newString[vetor[i].size()];Setchaves=vetor[i].keySet();Iteratorit=chaves.iterator();while(it.hasNext()){for(intj=0;j<vetor[i].size();j++){x[i][j]=it.next();***}//end for}//end while}//end for}//end metodo
Você deveria especificar o tipo do seu set e do seu Iterator:
Set<String> chaves = vetor[i].keySet();
Iterator<String> it = chaves.iterator();
Além disso, perceba que você chama next() várias vezes. O correto é chamar next() apenas 1 vez para cada teste de hasNext(). Procure usar o for each no lugar do iterator para evitar esse tipo de confusão:
publicvoidtreeToArray(){Stringx[][]=newString[dm.getQtdTipos()][];for(inti=0;i<vetor.length;i++){x[i]=newString[vetor[i].size()];for(Stringchave:vetor[i].keySet()){for(intj=0;j<vetor[i].size();j++){x[i][j]=chave;}//end for}//end while}//end for}//end metodo
>
yoshikichi
oitathi:
Eu tenho vetor (chamado vetor) do tipo Map. Minhas Map guardam objetos que são ordenados por uma string chamada id.
Ou seja, em cada indice do meu vetor eu tenho uma arvore com objetos de uma classe q eu criei.
eu também tenho um vetor bidimensional chamado x. Eu quero inserir somentes os ids das minhas arvores nele. Assim, os ids que estão nas arvores do indice 0 do vetor eu quero inserir no x[0][0], x[0][1], assim sucessivamente.
Eu escrevi esse código, mas ele não aceita a linha que eu sinalizei com um ***
Alguém sabe o pq?
publicvoidtreeToArray(){Stringx[][]=newString[dm.getQtdTipos()][];for(inti=0;i<vetor.length;i++){x[i]=newString[vetor[i].size()];Setchaves=vetor[i].keySet();Iteratorit=chaves.iterator();while(it.hasNext()){for(intj=0;j<vetor[i].size();j++){x[i][j]=it.next();***}//end for}//end while}//end for}//end metodo
Obrigada
Não seria melhor trabalhar List dentro de Map, ou Map dentro de Map, de ver com vetores simples.
Map<SeuIndice, Map<Indice,Elemento>> mapa = new HashMap<SeuIndice, Map<Indice,Elemento>> ();
oitathi
Oi vini, mas quando eu usei o seu código e mandei printar as minhas chaves, elas foram printadas diversas vezes…
publicvoidtreeToArray(){Stringx[][]=newString[dm.getQtdTipos()][];for(inti=0;i<vetor.length;i++){x[i]=newString[vetor[i].size()];for(Stringchave:vetor[i].keySet()){for(intj=0;j<vetor[i].size();j++){x[i][j]=chave;System.out.println}(chave);}//end for }//end while }//end for }//end metodo
Mas quando eu permeneci com o meu e coloquei um .toString no final, ele printou normalmente
publicvoidtreeToArray(){for(inti=0;i<vetor.length;i++){x[i]=newString[vetor[i].size()];Setchaves=vetor[i].keySet();Iteratorit=chaves.iterator();while(it.hasNext()){for(intj=0;j<vetor[i].size();j++){x[i][j]=it.next().toString();System.out.println("teste "+x[i][j]);}//end for}//end while}//end for}//end metodo
Tah muito errado eu fazer assim?
ViniGodoy
O que esse código tem que fazer?
oitathi
eu vou postar um desenho do que eu quero… acho q fica mais fácil de explicar!
Esse código tah fazendo exatamente o q está simbolizado pela seta preta em negrito a esquerda, ou seja, pegando apenas os ids dos objetos NovosDados e jogando APENAS esses ids no meu vetor de String bidimensional, entende?