Map.values();

2 respostas
robertwgil

Pessoal, tenho o seguinte código:

Map<String, Aereosol> mapAereos = new LinkedHashMap<String, Aereosol>();

... vários Aereosol adicionados

Collection<Aereosol> collection= mapAereos.values();

Essa collection é ordenada na mesma ordem que foi adicionada? ou seja, tem o mesmo
comportamento do LinkedHashMap ?

2 Respostas

T

Embora não esteja documentado, values é uma coleção que na verdade encapsula o iterador retornado por entrySet().iterator().
Então se entrySet().iterator() retorna as entradas do map na ordem em que foram inseridas, values() irá também fazer a mesma coisa (retornar os valores do map na ordem em que foram inseridos).

Eu tive de olhar os fontes de AbstractMap, HashMap e LinkedHashMap para chegar a essa conclusão.

B

Tem o mesmo comportamento.

Na implementação do GNU classpath, values retorna uma AbstractCollection, com o mesmo iterador do [Linked]HashMap, mas que retorna somente os valores da coleção.

Criado 5 de junho de 2008
Ultima resposta 5 de jun. de 2008
Respostas 2
Participantes 3