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

Popular posts from this blog

sql - VB.NET Operand type clash: date is incompatible with int error -

SVG stroke-linecap doesn't work for circles in Firefox? -

python - TypeError: Scalar value for argument 'color' is not numeric in openCV -