問題タブ [collectors]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Collectors.groupingBy は null キーを受け入れません
Java 8では、これは機能します:
しかし、これはしません:
Maps は null キーを許可し、List.class.getSuperclass() は null を返します。ただし、Collectors.groupingBy は Collectors.java の 907 行目で NPE を発行します。
この行を次のように変更して、独自のコレクターを作成すると機能します。
私の質問は次のとおりです。
1) Collectors.groupingBy の Javadoc は、null キーをマップすべきではないとは言っていません。この動作は何らかの理由で必要ですか?
2) 独自のコレクターを作成せずに、null キーを受け入れる別の簡単な方法はありますか?
java - Java8 ストリームの要素を既存のリストに追加する方法
Collector の Javadoc は、ストリームの要素を新しいリストに収集する方法を示しています。結果を既存の ArrayList に追加するワンライナーはありますか?
java - Java 8 コレクター API
この質問には、Java 8 コレクターを使用した要素のマッピングとグループ化が含まれます。私は患者のリストを持っています。各患者には、訪問した部門のリストがあります。Java 8 の新しいコレクター API を使用して各部門が訪問された回数をカウントしたい場合、部門リストでグループ化するにはどうすればよいでしょうか?
ありがとう!
注:各部門にカウンターを配置できることはわかっています。この質問は、Java 8 の新しい機能を学習することのみを目的としています。
コード:
私の主な方法では、患者のリストを持っています。Department クラスを編集 (または拡張または装飾) せずに、Department ごとに訪問された回数を知りたいです。
患者の流れを取り、それらを部門->カウント(各患者がどの部門を何回訪れたか)のマップにマッピングする必要があると思います。これらのマップのストリームを持つ - これらのマップをグループ化してカウントするために何をすべきかわかりません。
java - List を Map に変換し、null キーをフィルタリングする
Java 8ストリームを使用して、 Java 8 List<V> から Map<K, V> へのソリューションで説明されているように、リストをマップに変換したいと考えています。ただし、値をキーに 2 回変換することなく、特定のキー (たとえば、キーが null の場合) を持つエントリを削除するようにフィルター処理したいと考えています。
たとえば、次のように収集する前にフィルタリングを行うことができます
私の場合、キーを取得するためのロジックは、単純にフィールド プロパティを取得するよりも複雑です。最初にフィルターでロジックを実行し、次に Collectors.toMap の keyMapper 関数でロジックを実行することは避けたいと思います。
カスタム keyMapper 関数を使用してリストをマップに変換し、新しいキーに基づいて特定の値をフィルタリングするにはどうすればよいですか?
java - null エントリ値を持つ Collectors.toMap の NullPointerException
Collectors.toMap
NullPointerException
値の 1 つが の場合、 をスローしますnull
。私はこの動作を理解していません。マップには問題なく null ポインターを値として含めることができます。の値を null にできない正当な理由はありますCollectors.toMap
か?
また、これを修正する素敵なJava 8の方法はありますか、それとも単純な古いforループに戻す必要がありますか?
私の問題の例:
スタックトレース:
この問題は、Java 11 にも存在します。
java - ハッシュマップの収集>ジャバ8
List
aを aに変換できるようにしたいと考えていますHashMap
。ここで、キーは でelementName
あり、値はランダムなもののリストです (この場合は要素名)。つまり、私は(A->List(A), B->List(B), C-> List(C)
)が欲しいのです。toMap()
and を使用して渡そうとしkeyMapper
ましValueMapper
たが、コンパイルエラーが発生します。誰かが私を助けてくれれば本当に感謝しています。
ありがとう!
===これは私のために働いた
みんな助けてくれてありがとう!@izstas「要素を操作する必要があります」は大いに役立ちました:)。実際、これは私が正確に探していたものです