I have a LinkedHashMap < String, String > map .
List < String > keyList; List < String > valueList; map.keySet(); map.values(); Is there an easy way to populate keyList from map.keySet() and valueList from map.values(), or do I have to iterate?
Most collections accept Collection as a constructor argument:
List<String> keyList = new ArrayList<String>(map.keySet()); List<String> valueList = new ArrayList<String>(map.values()); values() since it was based on me misunderstanding the documentation]For sure!
keyList.addAll(map.keySet()); Or you could pass it at the time of creation as well
List<String> keyList = new ArrayList<String>(map.KeySet()); http://download.oracle.com/javase/1.4.2/docs/api/java/util/ArrayList.html
A different approach using java 8 -
List<String> valueList = map.values().stream().collect(Collectors.toList()); List<String> keyList = map.keySet().stream().collect(Collectors.toList()); Notes:
stream() - returns sequence of Object considering collection (here the map) as source
Collectors - Collectors are used to combining the result of processing on the elements of a stream.