19

我有一个LinkedHashMap < String, String > map.

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

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

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

4

3 回答 3

45

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

List<String> keyList = new ArrayList<String>(map.keySet());
List<String> valueList = new ArrayList<String>(map.values());
于 2010-12-01T19:19:27.527 回答
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

于 2010-12-01T19:19:13.307 回答
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- 收集器用于组合对流元素的处理结果。

于 2019-08-07T13:30:17.753 回答