妖精:
私はリストを持っていると私は私がのLinkedHashMapに変換する必要があるので、地図ではなく、キーの同じ順序でそれを変換する必要があります。私はそのようなものが必要になります。
list.stream().collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
しかし、マップの具体的なタイプと、のように:
list.stream().collect(Collectors.toCollection(LinkedHashMap::new))
それは、上記の両方のバリアントを組み合わせることが可能ですか?
彼らは次のとおりでした:
はい、ちょうど使用Collectors.toMap
マージ機能やマップ供給部を含むバリアントを:
<T, K, U, M extends Map<K, U>> Collector<T, ?, M> java.util.stream.Collectors.toMap(Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper, BinaryOperator<U> mergeFunction, Supplier<M> mapSupplier)
(最初の値を選択)、単純なマージ機能を使用すると、次のようになります。
LinkedHashMap<KeyType,ValueType> map =
list.stream().collect(Collectors.toMap(Map.Entry::getKey,
Map.Entry::getValue,
(v1,v2)->v1,
LinkedHashMap::new));