問題タブ [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 - Java8: ハッシュマップハッシュマップへStream / Map-Reduce / Collector を使用する
->List
から単純な Java を「変換」する方法を知っています。Y
Z
ここで、基本的にマップと同じことをしたいと思います。つまり、次のようになります。
String
解決策は->に限定されるべきではありませんInteger
。上記のList
例のように、任意のメソッド (またはコンストラクター) を呼び出したいと思います。
java - 補助コレクションを使用せずに、同じ X タイプ オブジェクトの一部のフィールドのみを含むストリームから X タイプ オブジェクトを収集する方法
例:
これにより、1 つのフィールドを抽出できます
これには補助コレクションが必要です
.map() のように、より多くのフィールドを直接抽出する方法はありますか?
基本的な例:
java - 順序を維持する Set に収集する Collector はありますか?
Collectors.toSet()
秩序を保ちません。代わりにリストを使用することもできますが、結果のコレクションでは要素の重複が許可されないことを示したいと思います。これは、まさにSet
インターフェイスの目的です。
java - com.google.common.collect.ImmutableSet に収集する java.util.stream.Collector をどのように作成しますか?
ImmutableSet
インスタンスはインスタンスでのみ構築されImmutableSet.Builder
、実装されていないため、 orCollection
だけを使用できないため、これは私には難しすぎるようです。Collectors.toCollection(ImmutableSet::new)
Collectors.toCollection(ImmutableSet.Builder::new)
java - Java 8 Streams: ワイルドカードを使用したジェネリックに対して Collectors.toMap の動作が異なるのはなぜですか?
の数があるとしList
ます。の値はなどList
の型Integer
にすることができます。そのような を宣言する場合、ワイルドカード ( ) を使用して宣言することも、ワイルドカードを使用せずに宣言することもできます。Double
List
?
だから、今私はを使いたいと思っていstream
ます(明らかに、以下のコードは問題を説明するための単なる例です)。ストリーミングすることから始めましょう:List
collect
Map
Collectors.toMap
numberList
しかし、私は同じ操作を行うことができませんwildcardList
:
number.intValue()
コンパイラは、次のメッセージでの呼び出しに文句を言います。
Test.java: シンボルが見つかりません
symbol: メソッド intValue()
場所: java.lang.Object 型の変数番号
コンパイラ エラーから、ラムダ内の が としてではなくnumber
として扱われることは明らかです。Object
Number
だから、今私の質問に:
- のワイルドカード バージョンを収集すると、ワイルドカードを
List
使用しないバージョンの のように機能しないのはなぜList
ですか? - ラムダの変数がではなく
number
と見なされるのはなぜですか?Object
Number