Java8ストリームAPIを使用して関数のリストを値に適用する

ヴェルティ

単一のログメッセージpojoLoggedExchange取得し、それに一連の変換を適用したいと思います変換は、リスト内のUnaryOperatorsです。

List<ConditionalTransform> transforms = new ArrayList<>();

どこConditionalTransform実装UnaryOperator<LoggedExchange>と私の現在のソリューションを使用しているが、このよう減らします:

public LoggedExchange transform(LoggedExchange original) {
    return transforms.stream().reduce(original, (o, t) -> t.apply(o), (m1, m2) -> m2);
}

これを並行して実行することは意味がありません。2つのメッセージを組み合わせる方法がないためです((m1,m2) -> m2コンパイラーを満足させるためだけにあります)。

これを行うためのより良い方法はありConditionalTranformsますか(どういうわけすべてを構成するなど)、そうでない場合は、combiner並列実行をサポートできないため関数は例外などをスローする必要がありますか?

JavaDocでのこれらの操作のほとんどはで行うことが可能であるべき状態mapreduceが、私はどのように表示されません。

user253751

このようなものが機能するはずです:

public LoggedExchange transform(LoggedExchange original) {
    return transforms.stream().reduce(UnaryOperator.identity(), (a, b) -> ((LoggedExchange o) -> b.apply(a.apply(o)))).apply(original);
}

これにより、UnaryOperator<LoggedExchange>すべての関数transformsを順番に適用するシングルが作成され、入力値を使用して呼び出されます。

または、単純なループバージョンが常にあります。

public LoggedExchange transform(LoggedExchange value) {
    for(UnaryOperator<LoggedExchange> transform : transforms)
        value = transform.apply(value);
    return value;
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Java8ストリームAPIを使用して関数のリストを値に適用する

分類Dev

マッパーのストリームをJava8の別のストリームに適用します

分類Dev

マッパーのストリームをJava8の別のストリームに適用します

分類Dev

ScalaCatsを使用して関数のリストを値に適用する

分類Dev

Java8ストリームAPIを使用してマップを別のマップに変換する

分類Dev

Java8ストリームを使用してリスト内の文字列のリストを変更する

分類Dev

Java8ストリームを使用してリスト内のアイテムのフィールドに値を追加する方法

分類Dev

Java8ストリームを使用して大文字に変換する

分類Dev

Java8ストリームを使用してリストのリストを単一のリストに変換する方法

分類Dev

Java8ストリームAPIを使用してList <A>をMap <String、List <A >>に変換する

分類Dev

Java8ストリームAPIを使用してJSONNodeを解析します

分類Dev

ストリームを使用してJava8で値の範囲でグループ化する方法

分類Dev

ストリームを使用してJava8で値の範囲でグループ化する方法

分類Dev

データフレームのリストを使用して列名に関数を適用します

分類Dev

optim()を使用して、データフレームのリストに関数を適用します

分類Dev

Javaの8ストリームを使用して複数のリストをトラバースするには?

分類Dev

複数の値を検索してブール値を返すJava8ストリーム

分類Dev

Ramdaを使用して関数のリストを引数のリストに適用する

分類Dev

関数の戻り値からリストにオブジェクトを追加する際のJava8ストリームの例外処理

分類Dev

anyMatch()java8ストリームで複合BiPredicateを適用する方法

分類Dev

Java8ストリームでgroupby-> mapping-> reducingを適用する方法

分類Dev

Java8のストリームを介してオブジェクトの変数に値を割り当てることはできますか?

分類Dev

Java8ストリームを使用してDTO内の配列リストから要素を削除する

分類Dev

flink ウィンドウ API を使用して、1 秒あたりのストリーム ウィンドウに集計関数を適用する方法

分類Dev

関数のリストをRamdaの値に適用します

分類Dev

関数のリストをJavaストリームの.map()メソッドに適用する

分類Dev

Java8ストリームAPIを使用して複数の属性でオブジェクトをグループ化する

分類Dev

Java8ストリーム-リストをフィルタリングして値を取得する方法

分類Dev

JAVA8ストリームを使用して、クラスから必要な値を取得する方法

Related 関連記事

  1. 1

    Java8ストリームAPIを使用して関数のリストを値に適用する

  2. 2

    マッパーのストリームをJava8の別のストリームに適用します

  3. 3

    マッパーのストリームをJava8の別のストリームに適用します

  4. 4

    ScalaCatsを使用して関数のリストを値に適用する

  5. 5

    Java8ストリームAPIを使用してマップを別のマップに変換する

  6. 6

    Java8ストリームを使用してリスト内の文字列のリストを変更する

  7. 7

    Java8ストリームを使用してリスト内のアイテムのフィールドに値を追加する方法

  8. 8

    Java8ストリームを使用して大文字に変換する

  9. 9

    Java8ストリームを使用してリストのリストを単一のリストに変換する方法

  10. 10

    Java8ストリームAPIを使用してList <A>をMap <String、List <A >>に変換する

  11. 11

    Java8ストリームAPIを使用してJSONNodeを解析します

  12. 12

    ストリームを使用してJava8で値の範囲でグループ化する方法

  13. 13

    ストリームを使用してJava8で値の範囲でグループ化する方法

  14. 14

    データフレームのリストを使用して列名に関数を適用します

  15. 15

    optim()を使用して、データフレームのリストに関数を適用します

  16. 16

    Javaの8ストリームを使用して複数のリストをトラバースするには?

  17. 17

    複数の値を検索してブール値を返すJava8ストリーム

  18. 18

    Ramdaを使用して関数のリストを引数のリストに適用する

  19. 19

    関数の戻り値からリストにオブジェクトを追加する際のJava8ストリームの例外処理

  20. 20

    anyMatch()java8ストリームで複合BiPredicateを適用する方法

  21. 21

    Java8ストリームでgroupby-> mapping-> reducingを適用する方法

  22. 22

    Java8のストリームを介してオブジェクトの変数に値を割り当てることはできますか?

  23. 23

    Java8ストリームを使用してDTO内の配列リストから要素を削除する

  24. 24

    flink ウィンドウ API を使用して、1 秒あたりのストリーム ウィンドウに集計関数を適用する方法

  25. 25

    関数のリストをRamdaの値に適用します

  26. 26

    関数のリストをJavaストリームの.map()メソッドに適用する

  27. 27

    Java8ストリームAPIを使用して複数の属性でオブジェクトをグループ化する

  28. 28

    Java8ストリーム-リストをフィルタリングして値を取得する方法

  29. 29

    JAVA8ストリームを使用して、クラスから必要な値を取得する方法

ホットタグ

アーカイブ