I have a LinkedHashMap < String, String > map
.
List < String > keyList;
List < String &开发者_运维百科gt; 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());
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 ofObject
considering collection (here themap
) as sourceCollectors
- Collectors are used to combining the result of processing on the elements of a stream.
精彩评论