ジェイ:
これは、リストオブジェクトのマップで構成されています。私は、ループ・ステートメントを介してそれらを比較することによって、同じ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())
)
);
あなたの状態がそのようであるので、あなたがコードリストからフィルタにそれぞれの時間を持っていることに注意してください。より効率的でクリーンかつ効果的であることが地図の代わりにクラスを使用してみてください。