どのように私はこのソースコードは、ラムダに変換することができますか?

ジェイ:

これは、リストオブジェクトのマップで構成されています。私は、ループ・ステートメントを介してそれらを比較することによって、同じIDを持つリストに一致するようにしてみてください。どのように私は、ラムダに変換することができますか?

List<Map<String, String>> combineList = new ArrayList<>(); // Temp List
for(Map titleMap : titleList) { // Name List
   for(Map codeMap : codeList) { // Age List
      if(titleMap.get("ID").equals(codeMap.get("ID"))) { // compare Id
         Map<String,String> tempMap = new HashMap<>();
          tempMap.put("ID", titleMap.get("ID"));
          tempMap.put("NAME", titleMap.get("NAME"));
          tempMap.put("AGE", codeMap.get("AGE"));
          combineList.add(tempMap);
      }
   }
}
ビナイプラジャーパティ:

あなたは既に効率的な方法でそれをやっています。あなたはあなただけの使用に同じコードを変更することができますしたいのであればstream().forEach利用したい場合や、より下記のようにそれを行うストリーム:

titleList.stream()
        .forEach(titleMap ->
            combineList.addAll(
                codeList.stream()
                    .filter(codeMap -> titleMap.get("ID").equals(codeMap.get("ID")))
                    .map(codeMap -> {
                      Map<String, Object> tempMap = new HashMap<>();
                      tempMap.put("ID", titleMap.get("ID"));
                      tempMap.put("NAME", titleMap.get("NAME"));
                      tempMap.put("ID", codeMap.get("ID"));
                      tempMap.put("AGE", codeMap.get("AGE"));
                      return tempMap;
                    })
                    .collect(Collectors.toList())
            )
        );

あなたの状態がそのようであるので、あなたがコードリストからフィルタにそれぞれの時間を持っていることに注意してください。より効率的でクリーンかつ効果的であることが地図の代わりにクラスを使用してみてください。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=191611&siteId=1