user3819295:
どのように私は、A、のDAOのリストを変換するためにコレクターを使用してください Map<String, List<Pojo>>
daoListは次のようになります。
[0] : id = "34234", team = "gools", name = "bob", type = "old"
[1] : id = "23423", team = "fool" , name = "sam", type = "new"
[2] : id = "34342", team = "gools" , name = "dan", type = "new"
私はGROUPBYのチーム '属性にしたいと、以下のように、各チームのリストを持っています:
"gools":
["id": 34234, "name": "bob", "type": "old"],
["id": 34342, "name": "dan", "type": "new"]
"fool":
["id": 23423, "name": "sam", "type": "new"]
POJOは、次のようになります。
@Data
@NoArgsConstructor
@AllArgsConstructor(access = AccessLevel.PUBLIC)
public class Pojo{
private String id;
private String name;
private String type;
}
これは私が、それを行うには、明らかに間違った方法をしようとしている方法です。
public Team groupedByTeams(List<? extends GenericDAO> daoList)
{
Map<String, List<Pojo>> teamMap= daoList.stream()
.collect(Collectors.groupingBy(GenericDAO::getTeam))
}
彼らは次のとおりでした:
あなたの集電体には、 - .collect(Collectors.groupingBy(GenericDAO::getTeam))
-が生成されますMap<String,List<? extends GenericDAO>>
。
生成するためにはMap<String, List<Pojo>>
、あなたは変換する必要がありますGenericDAO
にインスタンスをPojo
連鎖することにより、インスタンスCollectors.mapping()
へのコレクターをCollectors.groupingBy()
コレクター:
Map<String, List<Pojo>> teamMap =
daoList.stream()
.collect(Collectors.groupingBy(GenericDAO::getTeam,
Collectors.mapping (dao -> new Pojo(...),
Collectors.toList())));
これは、あなたには、いくつか持っていると仮定しているPojo
受け取るコンストラクタGenericDAO
、インスタンスまたは関連するGenericDAO
プロパティを。