/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 8 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ċ Ġ* Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ @ file : kotlin . jvm . Jvm Mult if ile Class Ċ @ file : kotlin . jvm . Jvm Name (" Collections Kt ") Ċ Ċ package Ġkotlin . collections Ċ Ċ /** Ċ Ġ* ĠRemoves Ġa Ġsingle Ġinstance Ġof Ġthe Ġspecified Ġelement Ġfrom Ġthis Ċ Ġ* Ġcollection , Ġif Ġit Ġis Ġpresent . Ċ Ġ* Ċ Ġ* ĠAllows Ġto Ġover come Ġtype - safety Ġrestriction Ġof Ġ` remove ` Ġthat Ġrequires Ġto Ġpass Ġan Ġelement Ġof Ġtype Ġ` E `. Ċ Ġ* Ċ Ġ* Ġ@ return Ġ` true ` Ġif Ġthe Ġelement Ġhas Ġbeen Ġsuccessfully Ġremoved ; Ġ` false ` Ġif Ġit Ġwas Ġnot Ġpresent Ġin Ġthe Ġcollection . Ċ Ġ*/ Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġfun Ġ< @ kotlin . internal . Only Input Types ĠT > ĠMutable Collection < out ĠT >. remove ( element : ĠT ): ĠBoolean Ġ= ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") Ġ( this Ġas ĠMutable Collection < T >). remove ( element ) Ċ Ċ /** Ċ Ġ* ĠRemoves Ġall Ġof Ġthis Ġcollection 's Ġelements Ġthat Ġare Ġalso Ġcontained Ġin Ġthe Ġspecified Ġcollection . ĊĊ Ġ* ĠAllows Ġto Ġover come Ġtype - safety Ġrestriction Ġof Ġ` removeAll ` Ġthat Ġrequires Ġto Ġpass Ġa Ġcollection Ġof Ġtype Ġ` Collection < E >`. Ċ Ġ* Ċ Ġ* Ġ@ return Ġ` true ` Ġif Ġany Ġof Ġthe Ġspecified Ġelements Ġwas Ġremoved Ġfrom Ġthe Ġcollection , Ġ` false ` Ġif Ġthe Ġcollection Ġwas Ġnot Ġmodified . Ċ Ġ*/ Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġfun Ġ< @ kotlin . internal . Only Input Types ĠT > ĠMutable Collection < out ĠT >. removeAll ( elements : ĠCollection < T >): ĠBoolean Ġ= ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") Ġ( this Ġas ĠMutable Collection < T >). removeAll ( elements ) Ċ Ċ /** Ċ Ġ* ĠRet ains Ġonly Ġthe Ġelements Ġin Ġthis Ġcollection Ġthat Ġare Ġcontained Ġin Ġthe Ġspecified Ġcollection . Ċ Ġ* Ċ Ġ* ĠAllows Ġto Ġover come Ġtype - safety Ġrestriction Ġof Ġ` retain All ` Ġthat Ġrequires Ġto Ġpass Ġa Ġcollection Ġof Ġtype Ġ` Collection < E >`. Ċ Ġ* Ċ Ġ* Ġ@ return Ġ` true ` Ġif Ġany Ġelement Ġwas Ġremoved Ġfrom Ġthe Ġcollection , Ġ` false ` Ġif Ġthe Ġcollection Ġwas Ġnot Ġmodified . Ċ Ġ*/ Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġfun Ġ< @ kotlin . internal . Only Input Types ĠT > ĠMutable Collection < out ĠT >. retain All ( elements : ĠCollection < T >): ĠBoolean Ġ= ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") Ġ( this Ġas ĠMutable Collection < T >). retain All ( elements ) Ċ Ċ /** Ċ Ġ* ĠRemoves Ġthe Ġelement Ġat Ġthe Ġspecified Ġ[ index ] Ġfrom Ġthis Ġlist . Ċ Ġ* ĠIn ĠKotlin Ġone Ġshould Ġuse Ġthe Ġ[ Mutable List . remove At ] Ġfunction Ġinstead . Ċ Ġ*/ Ċ @ Deprecated (" Use Ġremove At ( index ) Ġinstead .", ĠReplace With (" remove At ( index )"), Ġlevel Ġ= ĠDeprec ation Level . ERROR ) Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġfun Ġ< T > ĠMutable List < T >. remove ( index : ĠInt ): ĠT Ġ= Ġremove At ( index ) Ċ Ċ /** Ċ Ġ* ĠAdds Ġthe Ġspecified Ġ[ element ] Ġto Ġthis Ġmutable Ġcollection . Ċ Ġ*/ Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġoperator Ġfun Ġ< T > ĠMutable Collection < in ĠT >. plus Assign ( element : ĠT ) Ġ{ ĊĠĠĠ Ġthis . add ( element ) Ċ } Ċ Ċ /** Ċ Ġ* ĠAdds Ġall Ġelements Ġof Ġthe Ġgiven Ġ[ elements ] Ġcollection Ġto Ġthis Ġmutable Ġcollection . Ċ Ġ*/ Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġoperator Ġfun Ġ< T > ĠMutable Collection < in ĠT >. plus Assign ( elements : ĠIterable < T >) Ġ{ ĊĠĠĠ Ġthis . addAll ( elements ) Ċ } Ċ Ċ /** Ċ Ġ* ĠAdds Ġall Ġelements Ġof Ġthe Ġgiven Ġ[ elements ] Ġarray Ġto Ġthis Ġmutable Ġcollection . Ċ Ġ*/ Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġoperator Ġfun Ġ< T > ĠMutable Collection < in ĠT >. plus Assign ( elements : ĠArray < T >) Ġ{ ĊĠĠĠ Ġthis . addAll ( elements ) Ċ } Ċ Ċ /** Ċ Ġ* ĠAdds Ġall Ġelements Ġof Ġthe Ġgiven Ġ[ elements ] Ġsequence Ġto Ġthis Ġmutable Ġcollection . Ċ Ġ*/ Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġoperator Ġfun Ġ< T > ĠMutable Collection < in ĠT >. plus Assign ( elements : ĠSequence < T >) Ġ{ ĊĠĠĠ Ġthis . addAll ( elements ) Ċ } Ċ Ċ /** Ċ Ġ* ĠRemoves Ġa Ġsingle Ġinstance Ġof Ġthe Ġspecified Ġ[ element ] Ġfrom Ġthis Ġmutable Ġcollection . Ċ Ġ*/ Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġoperator Ġfun Ġ< T > ĠMutable Collection < in ĠT >. minus Assign ( element : ĠT ) Ġ{ ĊĠĠĠ Ġthis . remove ( element ) Ċ } Ċ Ċ /** Ċ Ġ* ĠRemoves Ġall Ġelements Ġcontained Ġin Ġthe Ġgiven Ġ[ elements ] Ġcollection Ġfrom Ġthis Ġmutable Ġcollection . Ċ Ġ*/ Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġoperator Ġfun Ġ< T > ĠMutable Collection < in ĠT >. minus Assign ( elements : ĠIterable < T >) Ġ{ ĊĠĠĠ Ġthis . removeAll ( elements ) Ċ } Ċ Ċ /** Ċ Ġ* ĠRemoves Ġall Ġelements Ġcontained Ġin Ġthe Ġgiven Ġ[ elements ] Ġarray Ġfrom Ġthis Ġmutable Ġcollection . Ċ Ġ*/ Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġoperator Ġfun Ġ< T > ĠMutable Collection < in ĠT >. minus Assign ( elements : ĠArray < T >) Ġ{ ĊĠĠĠ Ġthis . removeAll ( elements ) Ċ } Ċ Ċ /** Ċ Ġ* ĠRemoves Ġall Ġelements Ġcontained Ġin Ġthe Ġgiven Ġ[ elements ] Ġsequence Ġfrom Ġthis Ġmutable Ġcollection . Ċ Ġ*/ Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġoperator Ġfun Ġ< T > ĠMutable Collection < in ĠT >. minus Assign ( elements : ĠSequence < T >) Ġ{ ĊĠĠĠ Ġthis . removeAll ( elements ) Ċ } Ċ Ċ /** Ċ Ġ* ĠAdds Ġall Ġelements Ġof Ġthe Ġgiven Ġ[ elements ] Ġcollection Ġto Ġthis Ġ[ Mutable Collection ]. Ċ Ġ*/ Ċ public Ġfun Ġ< T > ĠMutable Collection < in ĠT >. addAll ( elements : ĠIterable < T >): ĠBoolean Ġ{ ĊĠĠĠ Ġwhen Ġ( elements ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠCollection Ġ-> Ġreturn Ġadd All ( elements ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġresult : ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġelements ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( add ( item )) Ġresult Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠAdds Ġall Ġelements Ġof Ġthe Ġgiven Ġ[ elements ] Ġsequence Ġto Ġthis Ġ[ Mutable Collection ]. Ċ Ġ*/ Ċ public Ġfun Ġ< T > ĠMutable Collection < in ĠT >. addAll ( elements : ĠSequence < T >): ĠBoolean Ġ{ ĊĠĠĠ Ġvar Ġresult : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġfor Ġ( item Ġin Ġelements ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( add ( item )) Ġresult Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ /** Ċ Ġ* ĠAdds Ġall Ġelements Ġof Ġthe Ġgiven Ġ[ elements ] Ġarray Ġto Ġthis Ġ[ Mutable Collection ]. Ċ Ġ*/ Ċ public Ġfun Ġ< T > ĠMutable Collection < in ĠT >. addAll ( elements : ĠArray < out ĠT >): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġadd All ( elements . asList ()) Ċ } Ċ Ċ /** Ċ Ġ* ĠRemoves Ġall Ġelements Ġfrom Ġthis Ġ[ Mutable Iterable ] Ġthat Ġmatch Ġthe Ġgiven Ġ[ predicate ]. Ċ Ġ*/ Ċ public Ġfun Ġ< T > ĠMutable Iterable < T >. removeAll ( predicate : Ġ( T ) Ġ-> ĠBoolean ): ĠBoolean Ġ= Ġfilter In Place ( predicate , Ġtrue ) Ċ Ċ /** Ċ Ġ* ĠRet ains Ġonly Ġelements Ġof Ġthis Ġ[ Mutable Iterable ] Ġthat Ġmatch Ġthe Ġgiven Ġ[ predicate ]. Ċ Ġ*/ Ċ public Ġfun Ġ< T > ĠMutable Iterable < T >. retain All ( predicate : Ġ( T ) Ġ-> ĠBoolean ): ĠBoolean Ġ= Ġfilter In Place ( predicate , Ġfalse ) Ċ Ċ private Ġfun Ġ< T > ĠMutable Iterable < T >. filter In Place ( predicate : Ġ( T ) Ġ-> ĠBoolean , Ġpredicate Result ToRemove : ĠBoolean ): ĠBoolean Ġ{ ĊĠĠĠ Ġvar Ġresult Ġ= Ġfalse ĊĠĠĠ Ġwith ( iterator ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhile Ġ( hasNext ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( predicate ( next ()) Ġ== Ġpredicate Result ToRemove ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ /** Ċ Ġ* ĠRemoves Ġall Ġelements Ġfrom Ġthis Ġ[ Mutable List ] Ġthat Ġmatch Ġthe Ġgiven Ġ[ predicate ]. Ċ Ġ*/ Ċ public Ġfun Ġ< T > ĠMutable List < T >. removeAll ( predicate : Ġ( T ) Ġ-> ĠBoolean ): ĠBoolean Ġ= Ġfilter In Place ( predicate , Ġtrue ) Ċ Ċ /** Ċ Ġ* ĠRet ains Ġonly Ġelements Ġof Ġthis Ġ[ Mutable List ] Ġthat Ġmatch Ġthe Ġgiven Ġ[ predicate ]. Ċ Ġ*/ Ċ public Ġfun Ġ< T > ĠMutable List < T >. retain All ( predicate : Ġ( T ) Ġ-> ĠBoolean ): ĠBoolean Ġ= Ġfilter In Place ( predicate , Ġfalse ) Ċ Ċ private Ġfun Ġ< T > ĠMutable List < T >. filter In Place ( predicate : Ġ( T ) Ġ-> ĠBoolean , Ġpredicate Result ToRemove : ĠBoolean ): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( this Ġ! is ĠRandom Access ) ĊĠĠĠĠĠĠĠ Ġreturn Ġ( this Ġas ĠMutable Iterable < T >). filter In Place ( predicate , Ġpredicate Result ToRemove ) ĊĊĠĠĠ Ġvar Ġwrite Index : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġfor Ġ( read Index Ġin Ġ 0 .. last Index ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġthis [ read Index ] ĊĠĠĠĠĠĠĠ Ġif Ġ( predicate ( element ) Ġ== Ġpredicate Result ToRemove ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĊĠĠĠĠĠĠĠ Ġif Ġ( write Index Ġ!= Ġread Index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ write Index ] Ġ= Ġelement ĊĊĠĠĠĠĠĠĠ Ġwrite Index ++ ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( write Index Ġ< Ġsize ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( remove Index Ġin Ġlast Index Ġdown To Ġwrite Index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove At ( remove Index ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠRemoves Ġall Ġelements Ġfrom Ġthis Ġ[ Mutable Collection ] Ġthat Ġare Ġalso Ġcontained Ġin Ġthe Ġgiven Ġ[ elements ] Ġcollection . Ċ Ġ*/ Ċ public Ġfun Ġ< T > ĠMutable Collection < in ĠT >. removeAll ( elements : ĠIterable < T >): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġremove All ( elements . convertTo Set For Set Operation With ( this )) Ċ } Ċ Ċ /** Ċ Ġ* ĠRemoves Ġall Ġelements Ġfrom Ġthis Ġ[ Mutable Collection ] Ġthat Ġare Ġalso Ġcontained Ġin Ġthe Ġgiven Ġ[ elements ] Ġsequence . Ċ Ġ*/ Ċ public Ġfun Ġ< T > ĠMutable Collection < in ĠT >. removeAll ( elements : ĠSequence < T >): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġset Ġ= Ġelements . to HashSet () ĊĠĠĠ Ġreturn Ġset . isNotEmpty () Ġ&& Ġremove All ( set ) Ċ } Ċ Ċ /** Ċ Ġ* ĠRemoves Ġall Ġelements Ġfrom Ġthis Ġ[ Mutable Collection ] Ġthat Ġare Ġalso Ġcontained Ġin Ġthe Ġgiven Ġ[ elements ] Ġarray . Ċ Ġ*/ Ċ public Ġfun Ġ< T > ĠMutable Collection < in ĠT >. removeAll ( elements : ĠArray < out ĠT >): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġelements . isNotEmpty () Ġ&& Ġremove All ( elements . to HashSet ()) Ċ } Ċ Ċ /** Ċ Ġ* ĠRet ains Ġonly Ġelements Ġof Ġthis Ġ[ Mutable Collection ] Ġthat Ġare Ġcontained Ġin Ġthe Ġgiven Ġ[ elements ] Ġcollection . Ċ Ġ*/ Ċ public Ġfun Ġ< T > ĠMutable Collection < in ĠT >. retain All ( elements : ĠIterable < T >): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġretain All ( elements . convertTo Set For Set Operation With ( this )) Ċ } Ċ Ċ /** Ċ Ġ* ĠRet ains Ġonly Ġelements Ġof Ġthis Ġ[ Mutable Collection ] Ġthat Ġare Ġcontained Ġin Ġthe Ġgiven Ġ[ elements ] Ġarray . Ċ Ġ*/ Ċ public Ġfun Ġ< T > ĠMutable Collection < in ĠT >. retain All ( elements : ĠArray < out ĠT >): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( elements . isNotEmpty ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġretain All ( elements . to HashSet ()) ĊĠĠĠ Ġelse ĊĠĠĠĠĠĠĠ Ġreturn Ġretain Nothing () Ċ } Ċ Ċ /** Ċ Ġ* ĠRet ains Ġonly Ġelements Ġof Ġthis Ġ[ Mutable Collection ] Ġthat Ġare Ġcontained Ġin Ġthe Ġgiven Ġ[ elements ] Ġsequence . Ċ Ġ*/ Ċ public Ġfun Ġ< T > ĠMutable Collection < in ĠT >. retain All ( elements : ĠSequence < T >): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġset Ġ= Ġelements . to HashSet () ĊĠĠĠ Ġif Ġ( set . isNotEmpty ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġretain All ( set ) ĊĠĠĠ Ġelse ĊĠĠĠĠĠĠĠ Ġreturn Ġretain Nothing () Ċ } Ċ Ċ private Ġfun ĠMutable Collection <* >. retain Nothing (): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= Ġis NotEmpty () ĊĠĠĠ Ġclear () ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ