groupingBy & Java 8 - after groupingBy convert map to a list of objects -
is there way simplify , directly convert map got groupingby list of elements have key , values attributes? , not have 2 times conversions stream.
what doing here fetch riskitems , map them dto, after need them grouped attribute riskitemdto - riskdto , these list of elements have riskdto , coressponding riskitemdtos elements..
riskitemrepositorycustom.findriskitemsbyrisktypename(risktypename) .stream() .map(mapper::maptodto) .collect(groupingby(riskitemdto::getrisk)) .entryset() .stream() .map( entry -> new riskwithriskitemsdto(entry.getkey(),entry.getvalue())) .collect(collectors.tolist());
no, 2 separate stream operations; result of grouping input second pipeline.
i know lots of people try make game out of "use few semicolons possible", goal should readability , clarity, not concision. in general, think better honest going on, , write 2 separate stream operations:
map<riskitemdto, list<riskitem> itemsbyrisk = repo.findriskitemsbyrisktypename(risktypename) .stream() .map(mapper::maptodto) .collect(groupingby(riskitemdto::getrisk)); list<riskwithriskitemsdto> list = itemsbyrisk.entryset().stream() .map( entry -> new riskwithriskitemsdto(entry.getkey(),entry.getvalue())) .collect(collectors.tolist());
Comments
Post a Comment