問題タブ [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 に答える
2627 参照

list - Java 8 - 新しいコレクションを蓄積して作成する

Java 8 を使用して、リストから新しいコレクションを作成し、途中で合計を累積したいと考えています。

ソース リストは、次のようなオブジェクトで構成されます。

次のようなリストの例を使用します。

結果のリストは次のようになります

  • desc1、10.0、10.0
  • desc2、14.0、24.0
  • desc3、5.0、29.0

最終的な合計 (この場合は 29.0) を得るために合計する方法は知っていますが、結果リストを作成し、同時に合計を途中で累積したいと考えています。

Java8でこれを行うにはどうすればよいですか?

0 投票する
13 に答える
35705 参照

java - 要素に沿ってリストをサブリストに分割する

私はこのリストを持っています ( List<String>):

そして、私はこのようなものが欲しいです:

nullつまり、リストのリスト ( ) を取得するために、値をセパレーターとして使用して、リストをサブリストに分割したいと考えていますList<List<String>>。Java 8 ソリューションを探しています。試してみましCollectors.partitioningByたが、探しているものかどうかわかりません。ありがとう!

0 投票する
1 に答える
1384 参照

arrays - 配列内の Java 8 頻度オブジェクト

を持っていますObject[] array

値には配列内のキー オブジェクトの頻度が含まれるMap<Obejct, Integer>mapを作成する必要があります。Integer

を使用してJava 8スタイルで行うにはどうすればよいCollectorsですか?

0 投票する
7 に答える
205033 参照

java - Map の値を収集する Java 8 Streams の Streams を使用したハッシュマップ

ハッシュマップを考えてみましょう

両方のハッシュマップにいくつかの値を挿入しました。

例えば、

Q1) ハッシュマップのキーにフィルタ条件を適用し、対応する値(リスト)を取得したい。

例: ここで私のクエリは key=1 で、出力は 'list1' である必要があります

私が書いた

しかし、このストリーム操作の出力としてリストとして取得する方法がわかりません。

Q2) 再度、ハッシュマップのキーにフィルター条件を適用し、対応するリストのリストを取得したいと考えています。

例: ここで、私のクエリは key=1% (つまり、キーは 1,10,15 のいずれか) で、出力は 'list1','list2','list3'(リストのリスト) になります。

0 投票する
1 に答える
1513 参照

lambda - コレクターに独自のフィニッシャーを実装する方法は?

ようこそ!

ID機能のように自明ではない独自のフィニッシャーを実装する方法を考えています。私のコレクターのヘッダーは

List<Pair<T, Double>>内部には、に変換する必要があるフィニッシャー メソッドがあります。List<T>

これは仕事をします

0 投票する
1 に答える
304 参照

java - ストリーム地図へ

私はStream<String>ファイルの を持っています。今、等しい単語を に結合したいと思いMap<String, Integer>ますStream<String>

を使用する必要があることはわかっていcollect(Collectors.groupingBy(..))ますが、使用方法がわかりません。

この問題を解決する方法のヒントを提供できる人がいれば、とてもうれしいです!

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

maven - Streams と Maven を使用する場合のコンパイル エラー

コードをMavenでコンパイルしようとすると、奇妙なコンパイル エラーが発生します。コードはEclipse 内で動作し、Java 8を使用Files.linesしてファイルを読み取ります。

コードは次のとおりです。

collect()メソッドを使用している場所。

誰でもこのエラーを解決するのを手伝ってもらえますか?

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

java - ストリームを並列に回すときのコレクターの使用方法

私は実際にこの質問に答えようとしました。Files.lines から取得した Stream<String> の行をスキップする方法 したがって、このコレクターは並行してうまく機能しないと思いました:

しかし、それは機能します。

編集:実際には機能しませんでした。入力セットが小さすぎて並列処理をトリガーできないという事実にだまされました。コメントの議論を参照してください

次の2つの処刑案が頭に浮かんだので、うまくいかないと思いました。


1.counter配列はすべてのスレッド間で共有されます。

スレッド t1 が Stream の最初の要素を読み取るため、if 条件が満たされます。リストに最初の要素を追加します。その後、配列値を更新する前に実行が停止します。

ストリームの 4 番目の要素で開始したと言うスレッド t2 は、それをリストに追加します。したがって、不要な要素になってしまいます。

もちろん、このコレクターは機能しているように見えるので、そのようには機能しないと思います。とにかく、更新はアトミックではありません。


2. 各スレッドには、配列の独自のコピーがあります

この場合、更新にこれ以上の問題はありませんが、スレッド t2 がストリームの 4 番目の要素で開始されないことを妨げるものは何もありません。だから彼もそのようには働きません。


それで、それはまったく機能しないようです.それは私に質問をもたらします.コレクターはどのように並行して使用されますか?

誰かが基本的にどのように機能するのか、また並行して実行したときにコレクターが機能する理由を説明できますか?

どうもありがとうございました!