Estou fazendo um método dentro da ArrayList que retorna 4 numeros iguais, porém ele retorna true, mesmo se tem somente 3 números iguais… não estou conseguindo achar o erro, alguém pode me ajudar?
Eis o código:
[code] public boolean verificaQuatro(){
int t=s.size();
int q=0;
ValorFace valor;
Numero c=null;
boolean quatro=false;
int nn = 0;
Não quero que ninguém faça para mim, só que aponte os erros. Esses dois métodos fazem parte de um trabalho que eu tenho que desenvolver, e claro que pode pedir auxílio aos outros, mas eu quero é aprender, e não pegar as coisas prontas sem aprender nada.
[quote=bruxo]Estou fazendo um método dentro da ArrayList que retorna 4 numeros iguais, porém ele retorna true, mesmo se tem somente 3 números iguais… não estou conseguindo achar o erro, alguém pode me ajudar?
[/quote]
O problema já foi resolvido mas vc pode considerar usar um Map<Integer, Integer> para contar.
Map<Integer, Integer> contadores = new TreeMap<Integer, Integer>();
for (Card card : mao){
Integer contador = contadores .get(card.getValor());
if ( contador == null{
contador = 0;
}
if (contador== 3){ // (A)
return true; // se havia 3 e foi encontrada mais uma então são 4
}
contadores.put(vard.getValor(), contador + 1);
if (contadores.size()== 3 ){ //(B)
return false; // se ha três diferentes é impossivel haver 4 iguais.
}
}
}
A e B são otimizações que interrompem a procura mais cedo.