問題タブ [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 - java 8 ストリームとラムダを使用して groupingBy の結果を flatMap する方法
他のオブジェクトのリストを含むオブジェクトがあり、コンテナーのいくつかのプロパティによってマップされた、含まれているオブジェクトのフラットマップを返したいと考えています。ストリームとラムダのみを使用して可能であれば誰ですか?
操作のリストを考えてみましょう:
結果は親切だろう
しかし、私はそれを平らにしたいと思います
java - Streams を使用した Java ピボット テーブルの実装
私はこの問題に数日間苦労しています。Java Streams を使用してピボット機能を作成しようとしています。SUM、COUNT、MAX、MIN、および AVERAGE を実装するだけです。入力には、ピボット列インデックス、ピボット行インデックスの配列、および計算する値が与えられます。
問題は、データが List < List < Object>> にあることです。ここで、Object は String、Integer、または Double のいずれかです。しかし、実行時までわかりません。結果を List < List < Object>> として返す必要があります。
MAX/MIN に問題があります (AVERAGE は MAX と MIN に似ていると思います)
複数のテーブル値をピボットするために、2 番目の groupingBy を使用するクラスを作成しました
これはコンパイルされません。何と比較するか、オブジェクトを int に変換する場所、または必要があるかどうかさえわかりません。これをすべて 1 つのストリームで実行したいのですが、それが可能かどうかはわかりません。私は何を間違っているのですか、それとも別の方法で行うことができますか。前もって感謝します。
java - Java8、フィルタリングコレクターはありますか?
コレクションをグループ化したいのですが、集計にいくつかの値を含めたくありません。それを行うための最良の解決策は何ですか?
ソリューションはコレクターになる可能性がありますfiltering(Predicate,Collector)
が、そのようなコレクターはありません。独自のコレクターを実装せずにそれを行う方法はありますか?
java-8 - 複数のキーにマップされるJava 8ストリームの「収集およびグループ化」オブジェクト
次のオブジェクトがあります。
今、私は3つのアイテムオブジェクトを含むリストを持っています:
Person オブジェクトは次のとおりです。
所有者と作成者の管理者に基づいて、Item オブジェクトのストリームをグループ化したい。結果Map<Person, List<Item>>
は次のようになります。
Stream API と Collector API を使用すると、最初に Item から manager へのマップを作成しMap<Item, List<Person>>
、次にマッピングを逆にすることができると思います。しかし、ストリームとコレクターのみを使用して必要なマッピングを作成する方法はありますか?
java-8 - Java 8 Stream flatMap および group by code コンパイラ エラー
このコードは Eclipse Mars では正常にコンパイルされますが、Eclipse Luna では次のエラーが発生します。
Map<Object,List<Object>>
型の不一致: からに変換できませんMap<String,List<WeblabInfo>>
返された をEclipse Luna の with に割り当てないと、エラーは at Map
and statement with message:Map<String, List<Item>> managersItem =
Map.Entry::getKey
Map.Entry::getValue
タイプは、ここで適用できるものを
Map.Entry
定義していません。」getKey(Object)
私は何を間違えましたか?
java - リスト内の要素をどのようにグループ化しますか地図へ>秩序を保ちながら?
Google Places API から取得した Google PlaceSummary オブジェクトのリストがあります。Google プレイス ID でそれらを収集してグループ化したいのですが、要素の順序も保持します。私がうまくいくと思ったのは次のとおりです。
しかし、それはコンパイルさえしません。Collectorsの Java API ドキュメントによると、そうあるべきだと思われます。
以前、私はこのコードを持っていました:
ただし、Streams API の標準.collect()
では、後続の要素の順序は保持されませんHashMap
(明らかに、HashMap
s は順序付けされていないため)。LinkedHashMap
Map が各バケットの挿入順序でソートされるように、出力を にしたいと思います。
ただし、私が提案した解決策はコンパイルされません。まず、それはPlaceSummary::getPlaceId
関数ではないと言っているため、認識しません-関数であることはわかっていますが。次に、M に変換できないと表示LinkedHashMap<Object, Object>
されます。M は一般的なコレクションであると想定されているため、受け入れられる必要があります。
LinkedHashMap
Java Stream API を使用して List を に変換するにはどうすればよいですか? それを行うための簡潔な方法はありますか?理解するのが難しすぎる場合は、古い学校の Java 8 より前のメソッドに頼ることができます。
List を LinkedHashMap に変換する際に別のスタック オーバーフローの回答があることに気付きましたが、具体的に繰り返し処理しているオブジェクトを「これ」で収集する必要があるため、これには必要な解決策がありません。