Collection

8 respostas
R

Faço um select e trago o codigo e a equipe de todos cadastrados e coloco no
HashMap, como que busco no hashMap, somente os codigos que a equipe seja igual a um número.

HashMap<String, String> matEquipeAtd = new HashMap<String, String>()

8 Respostas

bcartaxo

Cara não entendi muito bem, mas vejamos…

Se teu HashMap eh é de código por equipe, etnão a chave dele é o código de uma equipe e o valor é a equipe neh isso?
Se assim for vc obtém uma equipe com um determinado código chamando o método get(codigo) passando o código dessa equipe, com isso vc terá como retorno a sua equipe.

É isso? Senão explica melhor.

[]´s

R

O meu HashMap tem o codigo da matricula e o codigo da equipe , eu quero por exemplo todos
os codigos de matricula que fazem parte de do codigo 192 por exemplo.

LPJava

no caso como vc está usando uma string ela por padrao ja implementa o hashCode e equals… entao vc precisa testar apenas se o codigo é igual ao numero tipo:

cod.equals("2020");

:!:

bcartaxo

Kra, o HashMap só permite uma única entrada com a mesma chave. Se sua chave é a matricula então vc n vai ter como ter mais de uma equipe com a mesma chave.

O_SANTO_

Você teria que implementar um hashmap próprio com um comportamento (método) diferente que atenda as suas necessidades. HashMap é algo mais simples, você pede o valor de uma chave e só. Se você quer obter valores baseado em um atributo que se encontra dentro dos valores do seu hashmap, o único jeito é implementando esse função nele. Pelo menos é o que eu acho.

bcartaxo

Outra saída é vc iterar sobre o conjuntode chaves do seu mapa, alguma coisa mais ou menos assim:

Map<String, Equipe> map = new HashMap<String, Equipe>();
		for (String codigo : map.keySet()) {
			Equipe equipe = map.get(codigo);
			//Isso vai te permitir iterar sobre todos os objetos equipe
			//que estão no mapa e verificar qualquer atributo deles
		}

Mas estou achando estranho vc falar em atributos da sua equipe, quando seu mapa é de string por string, emntão sua equipe n tem uma entidade própria, e é apenas denotada por uma string. explica isso melhor kra, tá meio confuso.

O_SANTO_

É, está confuso mesmo. Tenta explicar melhor o seu problema rogsousap.

peczenyj
import java.util.*;

public class A{
        public static void main(String []x){
               HashMap<String, String> matEquipeAtd = new HashMap<String,String>() ;
               matEquipeAtd.put("mat01","cod01");
               matEquipeAtd.put("mat02","cod02");
               matEquipeAtd.put("mat03","cod01");
               matEquipeAtd.put("mat04","cod02");

               List<String> matCod02 = new ArrayList<String>();

               // vamos pegar as matriculas que tem cod02
               for(String a : matEquipeAtd.keySet()){
                        if (matEquipeAtd.get(a).equals("cod02"))
                                matCod02.add(a);
               }

               System.out.println("lista das matriculas c/ codigo cod02");
               for(String a : matCod02){
                   System.out.println(a);
               }
        }
}

resultado:

lista das matriculas c/ codigo cod02
mat02
mat04

Seria mais ou menos isso?

Criado 11 de dezembro de 2007
Ultima resposta 11 de dez. de 2007
Respostas 8
Participantes 5