package Ġio . kom mon s . design patterns . collection pipeline Ċ Ċ import Ġjava . util . stream . Collectors Ċ Ċ /** Ċ Ġ* ĠJava Functional Programming Ċ Ġ* Ċ Ġ* Ġ@ author Ġdeb op Ċ Ġ*/ Ċ object ĠJava Functional Programming Ġ{ ĊĊĠĠĠ Ġfun Ġget Models After 2 0 0 0 ( cars : ĠList < Car >): ĠList < String > Ġ= ĊĠĠĠĠĠĠĠ Ġcars . stream () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . year Of Make Ġ> Ġ 2 0 0 0 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted ( Comparator . comp aring < Car , ĠInt > Ġ{ Ġit . year Of Make Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . model Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect ( Collectors . toList ()) ĊĊĠĠĠ Ġfun Ġget Grouping Of C ars By Category ( cars : ĠList < Car >): ĠMap < Category , ĠList < Car >> Ġ= ĊĠĠĠĠĠĠĠ Ġcars . stream (). collect ( Collectors . grouping By Ġ{ Ġcar Ġ-> Ġcar . category Ġ}) ĊĊĠĠĠ Ġfun ĠgetS ed an C ars Owned Sorted By Data ( persons : ĠList < Person >): ĠList < Car > Ġ= ĊĠĠĠĠĠĠĠ Ġpersons . stream () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġit . cars . stream () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . category Ġ== ĠCategory . SED AN Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted ( Comparator . comp aring < Car , ĠInt > Ġ{ Ġit . year Of Make Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect ( Collectors . toList ()) Ċ Ċ }