ネストされたリストの要素でリストをグループ化する

ジョン

次のようなパラメータを持つCarオブジェクトがあります。

private String model;
private BigDecimal price;
private Color color;
private BigDecimal milleage;
private List<String> components;

Carオブジェクトのリストを作成しました:

var cars = List.of(
    Car.create("FORD", BigDecimal.valueOf(120000), Color.RED, BigDecimal.valueOf(150000),
            List.of("AIR CONDITIONING", "VOICE SERVICE")),
    Car.create("FORD", BigDecimal.valueOf(160000), Color.RED, BigDecimal.valueOf(150000),
            List.of("AIR CONDITIONING", "VOICE SERVICE")),
    Car.create("AUDI", BigDecimal.valueOf(200000), Color.BLACK, BigDecimal.valueOf(195000),
            List.of("NAVIGATION", "AUTOMATIC GEARBOX")),
    Car.create("FIAT", BigDecimal.valueOf(70000), Color.BLUE, BigDecimal.valueOf(85000),
            List.of("AIR CONDITIONING", "MANUAL GEARBOX")));

ここMap<String, List<Car>>で、文字列がコンポーネントリストの要素であり、このコンポーネントを含むオブジェクトのList<Car>>リストである場所を作成しCarます。

私はいくつかの同様の問題に基づいてこのようなことを試みましたが、実際にはこの問題を解決する方法がわかりません:

static Map<String, List<Car>> carsThatGotComponent(List<Car> cars) {
    return cars.stream()
               .flatMap(car -> car.getComponents()
                       .stream()
                       .map(component -> new AbstractMap.SimpleEntry<>(car, component)))
               .collect(Collectors.groupingBy(
                        Map.Entry::getValue,
                        Collectors.mapping(Map.Entry::getKey, Map.Entry::getValue)));
}
ニコラス・チャラランビディス

Collectors#mapping2番目のパラメーターとして、Collectorマッピング関数ではなく、ダウンストリームが必要です。

public static <T,U,A,R> Collector<T,?,R> mapping(
    Function<? super T,? extends U> mapper, 
    Collector<? super U,A,R> downstream)

Collectors.toList()代わりに使用したい

return cars.stream()
    .flatMap(car -> car.getComponents()
                       .stream()
                       .map(component -> new AbstractMap.SimpleEntry<>(car, component)))
    .collect(Collectors.groupingBy(
            AbstractMap.SimpleEntry::getValue,
            Collectors.mapping(AbstractMap.SimpleEntry::getKey, Collectors.toList())));

限り、あなたは使いよう以降、あなたが使用して1つのコレクタに全体の流れを簡素化する使用することができるCollectors#flatMappingのと

return cars.stream()
    .collect(Collectors.flatMapping(
             car -> car.getComponents()
                       .stream()
                       .map(component -> new AbstractMap.SimpleEntry<>(car, component)),
             Collectors.groupingBy(AbstractMap.SimpleEntry::getValue,
                     Collectors.mapping(AbstractMap.SimpleEntry::getKey, 
                             Collectors.toList()))));

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

条件の下でリストをネストされたリストにグループ化する-Python

分類Dev

リストのリスト内の要素をネストされた辞書にグループ化します

分類Dev

ネストされたリストの要素をグループ化する方法は?

分類Dev

Java8ストリームでマップされた値を持つリストのネストされたグループ化を取得する方法

分類Dev

最初の要素に基づいてネストされたリストをグループ化するにはどうすればよいですか?

分類Dev

別の列でグループ化された要素からリストのリストを返します

分類Dev

ネストされたリストのリストをループするリストのリスト

分類Dev

グループ化されたリストのリストをグループ化する方法は?

分類Dev

内部リスト要素をそのままにして、Pythonでネストされたループを操作する

分類Dev

Rのループでネストされたリストを作成する

分類Dev

リストを要素ごとにグループ化されたサブリストに分割する方法

分類Dev

日付ごとのネストされたリストで要素を時間ごとにグループ化しますか?

分類Dev

ネストされたリストを、互いに素な要素を持つグループに分離する

分類Dev

Elasticsearchアグリゲーター間の関係を構築する-ネストされたグループ化

分類Dev

SwiftUI:ネストされたForEach(グループ化)の要素を「スワイプ削除」する方法

分類Dev

SwiftUI:ネストされたForEach(グループ化)の要素を「スワイプ削除」する方法

分類Dev

ネストされた配列のオブジェクトの要素でグループ化する方法

分類Dev

Pythonでリストとネストされたリストの間で共通のリスト要素を取得する

分類Dev

n番目の要素が類似しているネストされたリストとグループリストを比較します

分類Dev

Django-属性値でグループ化されたクエリセットのリストを取得する方法

分類Dev

1つのステップでネストされたグループ化されたSumを取得する方法

分類Dev

リストのグループ化された要素をPythonの単一要素で1つのリストに結合します

分類Dev

このパンダ操作を高速化する方法(ネストされたリストアイテムでグループ化)

分類Dev

ネストされたforループでネストされたリストを処理する

分類Dev

親IDでグループ化されたネストされたリストを作成しました

分類Dev

ネストされたリスト (python) を辞書にグループ化する方法は?

分類Dev

ネストされたリストでグループ化し、合計

分類Dev

ネストされたグループで1つのコマンドのみをトリガーする

分類Dev

Rでネストされたリストのリストとリスト要素名を取得する

Related 関連記事

  1. 1

    条件の下でリストをネストされたリストにグループ化する-Python

  2. 2

    リストのリスト内の要素をネストされた辞書にグループ化します

  3. 3

    ネストされたリストの要素をグループ化する方法は?

  4. 4

    Java8ストリームでマップされた値を持つリストのネストされたグループ化を取得する方法

  5. 5

    最初の要素に基づいてネストされたリストをグループ化するにはどうすればよいですか?

  6. 6

    別の列でグループ化された要素からリストのリストを返します

  7. 7

    ネストされたリストのリストをループするリストのリスト

  8. 8

    グループ化されたリストのリストをグループ化する方法は?

  9. 9

    内部リスト要素をそのままにして、Pythonでネストされたループを操作する

  10. 10

    Rのループでネストされたリストを作成する

  11. 11

    リストを要素ごとにグループ化されたサブリストに分割する方法

  12. 12

    日付ごとのネストされたリストで要素を時間ごとにグループ化しますか?

  13. 13

    ネストされたリストを、互いに素な要素を持つグループに分離する

  14. 14

    Elasticsearchアグリゲーター間の関係を構築する-ネストされたグループ化

  15. 15

    SwiftUI:ネストされたForEach(グループ化)の要素を「スワイプ削除」する方法

  16. 16

    SwiftUI:ネストされたForEach(グループ化)の要素を「スワイプ削除」する方法

  17. 17

    ネストされた配列のオブジェクトの要素でグループ化する方法

  18. 18

    Pythonでリストとネストされたリストの間で共通のリスト要素を取得する

  19. 19

    n番目の要素が類似しているネストされたリストとグループリストを比較します

  20. 20

    Django-属性値でグループ化されたクエリセットのリストを取得する方法

  21. 21

    1つのステップでネストされたグループ化されたSumを取得する方法

  22. 22

    リストのグループ化された要素をPythonの単一要素で1つのリストに結合します

  23. 23

    このパンダ操作を高速化する方法(ネストされたリストアイテムでグループ化)

  24. 24

    ネストされたforループでネストされたリストを処理する

  25. 25

    親IDでグループ化されたネストされたリストを作成しました

  26. 26

    ネストされたリスト (python) を辞書にグループ化する方法は?

  27. 27

    ネストされたリストでグループ化し、合計

  28. 28

    ネストされたグループで1つのコマンドのみをトリガーする

  29. 29

    Rでネストされたリストのリストとリスト要素名を取得する

ホットタグ

アーカイブ