LinkedHashMapへのMap.Entryの変換一覧

妖精:

私はリストを持っていると私は私がの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));

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=223560&siteId=1