すべての主旨、私はJavaにとってかなり新しいです。この問題に対する私のアプローチは最適ではないかもしれません。ラムダを使用してHashtableに値を追加
私は、値のセットから4項目それぞれを含む文字列、{"a", "b", "e", "g"}
と{"no", "a", "g", "great"}
を言って、いくつかのリストを持っています。
私はは、各String
にint
値を割り当てると、そのセットのHashtable
を作成したいです。
class bla {
static Map stuff;
static {
// If I write it like this, I get the error "Cannot resolve method ContainsAll"
stuff.put("g", (aList) -> (aList.containsAll(Arrays.asList("a", "b", "e", "g")) ? 1 : 2));
}
}
Iの場合:特定のString
のために、私はそれがに記載されたリストの中他の項目、何か等に基づいて、それに異なる値を割り当てることラムダ式を使用したいですそのようにList<String>
を(aList)
に追加すると、(List <String> aList)
が得られます。「ラムダ式のターゲットタイプは、インタフェースでなければなりません」というエラーが表示されます。
私は、ラムダ体に{}
で()
を交換した場合、私は「を、期待エラー」を得ます。
これをどのように書くことができますか?それとももっと良いアイデアはありますか?
あなたが使用しているクラスのjavadocを読むのではなく、ランダムなものを試しているようです。最初のヒント:JDKでは大文字で始まるメソッドはありません。 –
^あなたはあなたが望むことをするためにラムダはほとんど必要ありません。 – EvanM
また、生の型は使用しないでください。 Mapが必要です。マップではありません。 –