for(inti=1;i<dataHolder.size();i++){Vector<String>cellStoreVector=(Vector)dataHolder.elementAt(i);// cellStoreVector é o mesmo objeto de dataHolderif(cellStoreVector.contains(selectTable().getClass())){System.out.println("\toK");continue;}elseSystem.out.println("===NC===");continue;}
Bem, o problema é este:
quando executo , dá um loop infinito, que volta ao primeiro item até o elemento que não confere ("===NC==="), como se o "else" indicasse o fim do loop, aí ele volta àquele primeiro elemento que printou e começa tuuuuuuuuudo de novo, até o infinito , hehehe.
Como diria a namorada do Super Mouse: "Alguém poderia me ajudar ???" rsrsrs, Até .
Outra coisa não vejo sentido nesses continues
Fiz um teste com for e continue e ele não reiniciou a contagem!
J
Julio_Leme2
Fala Felagund,
Brigadão mesmo pela força…
Sucesso essa dica do break no else …; o loop acabou ali… ;, só que preciso que continue até o fim do Vector, entende ? e se não tem o break alí, ele retorna lá no primeiro item deste mesmo Vector .
Como fazer para continuar até o fim do Vector, essa é a questão …
T
thiago.correa
Cara o uso do continue nesse caso e na minha opinião faz-se desnecessário!
M
marcelogn
Coloca as chaves no else… depois roda ae!
J
Julio_Leme2
Wellington,
voce está correto!
Veja bem, tirei os “continues” do “if else” , tratei as condições com suas devidas chaves ("{ }"), coloquei o “i” de acordo com a sua bem suposta colocação; e o que ocorreu foi … :
A numeração do “i” só ocorreu no “else”, entao ficou printando “1===NC===”
“2===NC===”
“3===NC===”
“4===NC===” …
....assimatéo17,foiquandoocorreuoerrode"Exception in thread "main" java.lang.OutOfMemoryError: Java heap space"queagentesabeéoexcessodousodamemoria.Realmente,meuarquivoébemextenso,éumalistaquepuxeidoexcelatravésdoPOI,equetemmaisde130.000registros.Agoraécomvoces,amigosexperientesemjava,quepossofazerpraresolveressaquestão.Eobrigadomaisumavez,Wellington.
J
Julio_Leme2
Amigos,
para nao ficarmos na duvida ou sem resposta, estou escrevendo a solução do meu problema.
O que estava acontecendo é que nao estava acessando os objetos corretos, por isso estava ocorrendo o loop infinito ( era um Vector dentro de outro Vector).
Foi só identificar os objetos corretos e chamá-los no main com seus devidos métodos, que rodou sem problemas.
Obrigado a todos …
W
WellingtonRamos
Julio Leme2:
O código é:
Bem,oproblemaéeste:
quandoexecuto,dáumloopinfinito,quevoltaaoprimeiroitematéoelementoquenãoconfere("===NC==="),comoseo"else"indicasseofimdoloop,aíelevoltaàqueleprimeiroelementoqueprintouecomeçatuuuuuuuuudodenovo,atéoinfinito,hehehe.
ComodiriaanamoradadoSuperMouse:"Alguém poderia me ajudar ???"rsrsrs,Até.
Não consigo ver um loop infinito em seu código, exceto se houvessem muitos dados dando uma falsa impressão de que não vai mais parar.
Não são os continues (nesse caso, totalmente desnecessários) o problema.
Imprima os indices i junto nos sysout.
W
WellingtonRamos
Julio Leme2:
… foi quando ocorreu o erro de “Exception in thread “main” java.lang.OutOfMemoryError: Java heap space”
Solução rápida:
Passe para a JVM os argumentos
-Xms32m
-Xmx256m
-Xms é a alocação mínima de memória
-Xmx é a alocação máxima de memória
Os valores seguintes são a quantidade de memória (m de megabyte)
Ajuste os mesmos para o ideal. O máximo seria para esse momento de sua aplicação. O mínimo ficaria para a operação normal
Outra opção seria rever a forma de obter os dados.