Java - 将LinkedHashMap键/值放入各自列表的简单方法?

时间:2010-12-01 19:17:06

标签: java collections map

我有LinkedHashMap < String, String > map

List < String > keyList;
List < String > valueList;

map.keySet();
map.values();

是否有一种简单的方法可以从map.values()中填充keyList,从map.values()中填充valueList,还是必须迭代?

3 个答案:

答案 0 :(得分:40)

大多数集合接受Collection作为构造函数参数:

List<String> keyList = new ArrayList<String>(map.keySet());
List<String> valueList = new ArrayList<String>(map.values());

答案 1 :(得分:7)

当然可以!

keyList.addAll(map.keySet());

或者你也可以在创作时传递它

List<String> keyList = new ArrayList<String>(map.KeySet());

http://download.oracle.com/javase/1.4.2/docs/api/java/util/ArrayList.html

答案 2 :(得分:0)

使用Java 8的另一种方法-

List<String> valueList = map.values().stream().collect(Collectors.toList()); 
List<String> keyList = map.keySet().stream().collect(Collectors.toList());  

注释:

  • stream()-返回考虑收集的Object序列(此处为map

  • Collectors-收集器用于组合对流元素的处理结果。