web-dev-qa-db-ja.com

Java-LinkedHashMapのキー/値をそれぞれのリストに入れる簡単な方法は?

私はLinkedHashMap < String, String > map

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

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

Map.keySet()からkeyListを、map.values()からvalueListを設定する簡単な方法はありますか、それとも繰り返す必要がありますか?

17
user375566

ほとんどのコレクションは、コンストラクター引数としてCollectionを受け入れます。

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

確かに!

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

7
Victor Parmar

Java 8-を使用した別のアプローチ

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

注:

  • stream()-コレクション(ここではObject)をソースと見なしてmapのシーケンスを返します

  • Collectors-コレクターは、ストリームの要素に対する処理の結果を組み合わせるために使用されます。

0
Razib