Javaを使用して地図<T、U>に一覧<T>を変換する8

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());

おすすめ

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