/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 6 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . ir . util Ċ Ċ inline Ġfun Ġ< T > ĠMutable List < T >. transform ( transformation : Ġ( T ) Ġ-> ĠT ) Ġ{ ĊĠĠĠ ĠforEach Indexed Ġ{ Ġi , Ġitem Ġ-> ĊĠĠĠĠĠĠĠ Ġset ( i , Ġtransformation ( item )) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠTrans forms Ġa Ġmutable Ġlist Ġin Ġplace . Ċ Ġ* ĠEach Ġelement Ġ` it ` Ġis Ġreplaced Ġwith Ġa Ġresult Ġof Ġ` transformation ( it )`, Ċ Ġ* Ġ` null ` Ġmeans Ġ" keep Ġexisting Ġelement " Ġ( to Ġavoid Ġcreating Ġexcess ive Ġsingleton Ġlists ). Ċ Ġ*/ Ċ inline Ġfun Ġ< T > ĠMutable List < T >. transform Flat ( transformation : Ġ( T ) Ġ-> ĠList < T > ?) Ġ{ ĊĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠ Ġwhile Ġ( i Ġ< Ġsize ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġget ( i ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtransformed Ġ= Ġtransformation ( item ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( transformed Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġadd All ( i , Ġtransformed ) ĊĠĠĠĠĠĠĠ Ġi Ġ+= Ġtransformed . size ĊĠĠĠĠĠĠĠ Ġremove At ( i ) ĊĠĠĠ Ġ} Ċ }