MasterExam + Map<K,V> com retorno de <V,K>[RESOLVIDO]

2 respostas
Tenkara_Kiddo

Boa noite Galera, como vão?

então…estou com uma dúvida do cão, estou estudando para a OCJP e me deparei com o seguinte trecho de código em um dos exercicios no Master Exam

public static <K,V> Map<V,K> mangle(Map<K,V> in) {

}

o que eu não entendi foi o retorno do método <K,V> Map<V,K>

alguem saberia me explicar o significado desse retorno multiplo ???

obrigado a todos.

pra quem quer ver o exercicio completo ai vai

public static <K,V> Map<V,K> mangle(Map<K,V> in) {        
    Map<V, K> out = new HashMap<V, K>();
    for (Map.Entry<K, V> entry : in.entrySet()) {
        out.put(entry.getValue(), entry.getKey());
    }
    return out;
}

public static void main(String[] args) {
    Map m1 = new HashMap();
    m1.put("a", 1);
    m1.put("b", 2);
    Map m2 = mangle(m1);
    System.out.println(m2.get("a") + "" + m2.get(2));
}

2 Respostas

A

Na verdade não é um retorno múltiplo. O método retorna um Map<V,K>.

As letras V e K neste caso são chamadas de formal type parameters e funcionam como fossem variaveis para o tipo real que usará na invocação.

Por exemplo, se quiser usar Integer e String:

Map&lt;Integer,String&gt; mapaOriginal = ....

  Map&lt;String, Integer&gt; mapaRetorno = mangle(mapaOriginal) ;

Com as letras, você diz pro método que qualquer tipo que ele usar no mapa, ele retornará um mapa com os tipos de chave/valor invertido.

Tenkara_Kiddo

Olá Abel, desculpe pela demora, entendi direitinho
muito obrigado pela reposta abraços…

Criado 20 de janeiro de 2011
Ultima resposta 1 de fev. de 2011
Respostas 2
Participantes 2