SNG:
私が変換しようとしているList<T>
にMap<T, U>
Javaの8を使用したが、私はこの1つの部分で立ち往生続けます。私が持ってしようとしていることは、マップの値はU.は、この例のために言うことができますタイプのいくつかの変数であるとされT
ているPerson
オブジェクトとU
ですString
。
list.stream().collect(Collectors.toMap(x -> x, ""));
しかし、私は下に、次のエラーを取得しておきますx -> x
。
no instance of type variable T,U exists so that String conforms to Function<? super T, ? extends U>
問題があることができるか上の任意のアイデア?
スイーパー:
マップがキーと値のペアのコレクションです。あなたはキーがのインスタンスになりたいことを述べたPerson
が、何の値について?あなたは何の値になりたいですか?
あなたは値が人の名前になりたい場合は、行うことができます。
list.stream().collect(Collectors.toMap(x -> x, Person::getName));
あなたは何とかちょうどすべての値になりたい場合は""
(私はこれは非常に便利かかわらだとは思わない)、あなたはまだラムダが必要になります。
list.stream().collect(Collectors.toMap(x -> x, x -> ""));
あなたが使用することができ、その場合には、ユニークな値の束を、欲しいだけかもしれないように思えますCollectors.toSet
。
list.stream().collect(Collectors.toSet());
それともdistinct
:
list.stream().distinct().collect(Collectors.toList());