Loop infinito - como resolver?

O código é:

	[code]

	for(int i=1; i<dataHolder.size(); i++){
 		Vector<String> cellStoreVector = (Vector)dataHolder.elementAt(i);  // cellStoreVector é o mesmo objeto de dataHolder
  	

 			if(cellStoreVector.contains(selectTable().getClass())){
 				
 				System.out.println("\toK");
 				continue;
 			
 			}
 			else System.out.println("===NC===");
 			continue;
 			
  	}
     

 [/code]

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

no seu else ao invés de continue use break;

else System.out.println("===NC==="); break;

ou simplesmente remova o continue desse else

posso saber por que o uso do continue?

Mas peraí há uma diferença entre

            if(cellStoreVector.contains(selectTable().getClass())){   
                   
                System.out.println("\toK");   
                continue;   
               
            }   
            else System.out.println("===NC===");   
            continue;   

para

            if(cellStoreVector.contains(selectTable().getClass())){   
                   
                System.out.println("\toK");   
                continue;   
               
            }   
            else {
                System.out.println("===NC===");   
                continue;   
            }

Outra coisa não vejo sentido nesses continues
Fiz um teste com for e continue e ele não reiniciou a contagem!

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 …

Cara o uso do continue nesse caso e na minha opinião faz-se desnecessário!

Coloca as chaves no else… depois roda ae! :expressionless:

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===” …

    .... assim até o 17, foi quando ocorreu o erro de "Exception in thread "main" java.lang.OutOfMemoryError: Java heap space"

 que a gente sabe é o excesso do uso da memoria.

 Realmente , meu arquivo é bem extenso, é uma lista que puxei do excel através do POI, e que tem mais de 130.000 registros.

 Agora é com voces , amigos experientes em java, que posso fazer pra resolver essa questão .

E obrigado mais uma vez, Wellington.

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 …

[quote=Julio Leme2]O código é:

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

[/quote]
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.

[quote=Julio Leme2]… foi quando ocorreu o erro de “Exception in thread “main” java.lang.OutOfMemoryError: Java heap space”

 que a gente sabe é o excesso do uso da memoria.

 Realmente , meu arquivo é bem extenso, é uma lista que puxei do excel através do POI, e que tem mais de 130.000 registros.

 Agora é com voces , amigos experientes em java, que posso fazer pra resolver essa questão .

[/quote]
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.