Tengo un LinkedHashMap < String, String > map
.Java: ¿forma simple de poner las claves/valores de LinkedHashMap en las listas respectivas?
List <String> keyList;
List <String> valueList;
map.keySet();
map.values();
¿Hay una manera fácil de llenar keyList de map.keySet() y valueList de map.values (), o tengo que repetir?
Ahh, tiene sentido . ¡Guay! –
Tanto LinkedHashMap como List tienen un orden, por lo que espero que el resultado deseado sea que las listas tengan el mismo orden que el mapa. Sin embargo, utiliza un conjunto como un tipo intermedio (el valor de retorno de map.keySet()), que no tiene un orden. Como tal, no se garantiza que keyList tenga el mismo orden que el mapa (tenga en cuenta, sin embargo, que map.values () devuelve una colección en lugar de un conjunto, por lo que no tiene ningún problema. [Eliminado más acerca de 'values () 'Debido a que se basaba en que malinterpreté la documentación] – Jasper
Tenía curiosidad sobre map.keySet() y revisé el código. Para LinkedHashMap esto devuelve LinkedHashMap $ LinkedKeySet, que TIENE un orden predecible (el de la fuente LinkedHashMap), solo al igual que map.values (). Por lo tanto, el código anterior funcionará como se esperaba, y terminará con dos listas donde lista clave [n] ==> valueList [n]. – Luke