問題タブ [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 - groupingBy とフィルタを 1 ステップで
がありStream<String>
、が欲しいですMap<Integer, String>
。私の分類子関数を呼び出しましょうgetKey(String)
- それは高価になる可能性があります。場合によってはゼロが返されます。これは、文字列を破棄し、結果のマップに含めないことを意味します。
したがって、次のコードを使用できます。
これにより、最初に不要な文字列がゼロでキー付けされたマップに追加され、次にそれらが削除されます。それらの多くがあるかもしれません。そもそもそれらをマップに追加しないようにするエレガントな方法はありますか?
グループ化の前にフィルター ステップを追加したくありません。これは、決定/分類コードを 2 回実行することを意味するためです。
java-8 - シーケンシャル コレクターを明示的に使用する方法
まず、順次 == !並列をアサートします
Java-8Stream
インターフェースは、次の 2 つのcollect
メソッドを提供します。
要素を順次収集 (または変更可能に削減) するコレクターが必要です (ユースケース: 複数のマップ (要素は再帰的にマップである可能性があります) マージ、関連する順序)。コンバイナは必要ありません (Collectors.of
メソッドもコンバイナを必要とします)。どういうわけかこれを明示的に行うより良い方法はありますか?
- カスタマイズされた
Collector
? of
コンバイナーのパラメーターなしの同様の方法?- ライブラリからの既存のアプローチ?
または、必ずしもシーケンシャル コレクターではなく、厳密に左から右へのコンバイナーを使用した並列アプローチです。
実際、正しいキーワードはFalling Collectorである必要があります。
java - TreeMapに変換するJava 8 Stream API toMap
私は持っている
私はそれらをに変換する必要があります
を使用して HashMap に変換する方法を知っています
しかし、次の TreeMap が必要です。
ユーザークラスの一部
ユーザーコンパレータ:
java-8 - リストを変換できますか
List<Map<String, Object>>
私はこのようなリストを持っています
groupBy メソッドsalesReportForSoldProperty.stream().collect(Collectors.groupingBy(tags -> tags.get("D")))
で Stream API を使用すると、コレクションを取得できMap<Object, List<Map<String, Object>>>
ますが、このコレクションの JSON を作成しようとすると、このような Json を取得しています
を取得しているため、ここではすべての値が JSONArray ですMap<Object, List<Map<String, Object>>>
。Stream API を使用してコレクションを取得する方法はありますか?Map<Object, Map<String, Object>>
したがって、適切な JSON を取得できます (JSONArray 値なし)
java-8 - Java Stream API を使用して「-」を削除し、マップのキーの空白を削除する方法
私は地図を持っています
Map を JSON に変換すると、これが得られます
しかし、ここで問題があります。JSON キーに空白と「-」を入れたくないのです。では、JAVA Stream API で解決できますか?空白と「-」を除いたマップのキーが得られますか? 同様のキー「Sold Third Party」は「SoldThirdParty」である必要があります
java-8 - Java Stream API でキーが重複している場合に Map の内部要素を追加する方法
List<Map<String, Object>>
私はこのようなリストを持っています
このストリーム API メソッドを使用して、このリストをマップに変換しています
java.lang.IllegalStateException: Duplicate key
しかし、私のリストには重複したキーがあるため、例外がスローされます
重複キーの内部要素を追加したい、このような出力が欲しい
JavaストリームAPIを介して可能ですか?
java - ラムダ パラメータの型を解決できません
だから私はカスタムコレクターを実装しようとしていますが、残念ながら私は非常に興味深い問題で立ち往生しています:
そのため、上記のコードでは、コンパイラは、型の elem オブジェクトのメソッドを解決できませんTripResultDTO
。
言うまでもなく、getOutbound
メソッドは赤で強調表示され、解決できません。が単にではなくTripResultsDTO
のインスタンスとして扱われているように見えるというインテリ感覚を見ると、それは非常に奇妙です。なぜそれが起こっているのか、何か考えがありますか。Object
TripResultDTO
また、私がやっていることをより良い方法で行うためのアイデアも大歓迎です。
java - ストリームを使用して Java Map を変換およびフィルタリングする
変換およびフィルタリングしたい Java Map があります。簡単な例として、すべての値を整数に変換してから、奇数のエントリを削除するとします。
これは正しく、結果は次のとおりです。{a=1234, c=3456}
とはいえ、二度電話しないようにするにはどうしたらいいのだろうかと考えずにはいられません.entrySet().stream()
。
変換操作とフィルター操作の両方を実行 .collect()
し、最後に 1 回だけ呼び出す方法はありますか?