問題タブ [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.

0 投票する
2 に答える
4606 参照

java - java 8 ストリームとラムダを使用して groupingBy の結果を flatMap する方法

他のオブジェクトのリストを含むオブジェクトがあり、コンテナーのいくつかのプロパティによってマップされた、含まれているオブジェクトのフラットマップを返したいと考えています。ストリームとラムダのみを使用して可能であれば誰ですか?

操作のリストを考えてみましょう:

結果は親切だろう

しかし、私はそれを平らにしたいと思います

0 投票する
2 に答える
9040 参照

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 つのストリームで実行したいのですが、それが可能かどうかはわかりません。私は何を間違っているのですか、それとも別の方法で行うことができますか。前もって感謝します。

0 投票する
2 に答える
2532 参照

java - Java8、フィルタリングコレクターはありますか?

コレクションをグループ化したいのですが、集計にいくつかの値を含めたくありません。それを行うための最良の解決策は何ですか?

ソリューションはコレクターになる可能性がありますfiltering(Predicate,Collector)が、そのようなコレクターはありません。独自のコレクターを実装せずにそれを行う方法はありますか?

0 投票する
2 に答える
21001 参照

java-8 - 複数のキーにマップされるJava 8ストリームの「収集およびグループ化」オブジェクト

次のオブジェクトがあります。

今、私は3つのアイテムオブジェクトを含むリストを持っています:

Person オブジェクトは次のとおりです。

所有者と作成者の管理者に基づいて、Item オブジェクトのストリームをグループ化したい。結果Map<Person, List<Item>>は次のようになります。

Stream API と Collector API を使用すると、最初に Item から manager へのマップを作成しMap<Item, List<Person>>、次にマッピングを逆にすることができると思います。しかし、ストリームとコレクターのみを使用して必要なマッピングを作成する方法はありますか?

0 投票する
2 に答える
3680 参照

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 Mapand statement with message:Map<String, List<Item>> managersItem =Map.Entry::getKeyMap.Entry::getValue

タイプは、ここで適用できるものをMap.Entry定義していません。」getKey(Object)

私は何を間違えましたか?

0 投票する
4 に答える
7856 参照

java - リスト内の要素をどのようにグループ化しますか

地図へ>秩序を保ちながら?

Google Places API から取得した Google PlaceSummary オブジェクトのリストがあります。Google プレイス ID でそれらを収集してグループ化したいのですが、要素の順序も保持します。私がうまくいくと思ったのは次のとおりです。

しかし、それはコンパイルさえしません。Collectorsの Java API ドキュメントによると、そうあるべきだと思われます。

以前、私はこのコードを持っていました:

ただし、Streams API の標準.collect()では、後続の要素の順序は保持されませんHashMap(明らかに、HashMaps は順序付けされていないため)。LinkedHashMapMap が各バケットの挿入順序でソートされるように、出力を にしたいと思います。

ただし、私が提案した解決策はコンパイルされません。まず、それはPlaceSummary::getPlaceId関数ではないと言っているため、認識しません-関数であることはわかっていますが。次に、M に変換できないと表示LinkedHashMap<Object, Object>されます。M は一般的なコレクションであると想定されているため、受け入れられる必要があります。

LinkedHashMapJava Stream API を使用して List を に変換するにはどうすればよいですか? それを行うための簡潔な方法はありますか?理解するのが難しすぎる場合は、古い学校の Java 8 より前のメソッドに頼ることができます。

List を LinkedHashMap に変換する際に別のスタック オーバーフローの回答があることに気付きましたが、具体的に繰り返し処理しているオブジェクトを「これ」で収集する必要があるため、これには必要な解決策がありません。