/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 0 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* Ġ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 . Ċ Ġ*/ Ċ @ file : Suppress (" UN CHECK ED _ CAST ", Ġ" Convert Two Comp arisons To Range Check ", Ġ" unused ") Ċ Ċ package Ġcom . replica . replic ais land Ċ Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠFixed Size Array Ġis Ġan Ġalternative Ġto Ġa Ġstandard ĠJava Ġcollection Ġlike ĠArrayList . Ġ ĠIt Ġis Ġdesigned Ċ Ġ* Ġto Ġprovide Ġa Ġcontiguous Ġarray Ġof Ġfixed Ġlength Ġwhich Ġcan Ġbe Ġaccessed , Ġsorted , Ġand Ġsearched Ġwithout Ċ Ġ* Ġrequiring Ġany Ġruntime Ġallocation . Ġ ĠThis Ġimplementation Ġmakes Ġa Ġdist inction Ġbetween Ġthe Ġ" capacity " Ċ Ġ* Ġof Ġan Ġarray Ġ( the Ġmaximum Ġnumber Ġof Ġobjects Ġit Ġcan Ġcontain ) Ġand Ġthe Ġ" count " Ġof Ġan Ġarray Ċ Ġ* Ġ( the Ġcurrent Ġnumber Ġof Ġobjects Ġinserted Ġinto Ġthe Ġarray ). Ġ ĠOperations Ġsuch Ġas Ġset () Ġand Ġremove () Ċ Ġ* Ġcan Ġonly Ġoperate Ġon Ġobjects Ġthat Ġhave Ġbeen Ġexplicitly Ġadd ()- ed Ġto Ġthe Ġarray ; Ġthat Ġis , Ġindexes Ċ Ġ* Ġlarger Ġthan Ġget Count () Ġbut Ġsmaller Ġthan Ġget Capacity () Ġcan 't Ġbe Ġused Ġon Ġtheir Ġown . Ċ Ġ* Ġ@ param Ġ< T > ĠThe Ġtype Ġof Ġobject Ġthat Ġthis Ġarray Ġcontains . Ċ </ T > Ġ*/ Ċ class ĠFixed Size Array < T > Ġ: ĠAl location Guard Ġ{ ĊĠĠĠ Ġprivate Ġval Ġm Contents : ĠArray < T ?> ĊĠĠĠ Ġ/** ĠReturns Ġthe Ġnumber Ġof Ġobjects Ġin Ġthe Ġarray . Ġ Ġ*/ ĊĠĠĠ Ġvar Ġcount : ĠInt ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġprivate Ġvar Ġm Comparator : ĠComparator < T ?> ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Sorted : ĠBoolean ĊĠĠĠ Ġprivate Ġvar Ġm Sorter : ĠSort er < T ?> ĊĊĠĠĠ Ġconstructor ( size : ĠInt ) Ġ: Ġsuper () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG Ġ&& Ġsize Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror (" Assertion Ġfailed ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠU gh ! Ġ ĠNo Ġgeneric Ġarray Ġconstruction Ġin ĠJava . ĊĠĠĠĠĠĠĠ Ġm Contents Ġ= ĠarrayOf Null s < Any >( size ) Ġas ĠArray < T ?> ĊĠĠĠĠĠĠĠ Ġcount Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġm Sorted Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġm Sorter Ġ= ĠStandard Sorter () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( size : ĠInt , Ġcomparator : ĠComparator < T ?> ?) Ġ: Ġsuper () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// assert ( size Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġm Contents Ġ= ĠarrayOf Null s < Any >( size ) Ġas ĠArray < T ?> ĊĠĠĠĠĠĠĠ Ġcount Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġm Comparator Ġ= Ġcomparator ĊĠĠĠĠĠĠĠ Ġm Sorted Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġm Sorter Ġ= ĠStandard Sorter () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInser ts Ġa Ġnew Ġobject Ġinto Ġthe Ġarray . Ġ ĠIf Ġthe Ġarray Ġis Ġfull , Ġan Ġassert Ġis Ġthrown Ġand Ġthe ĊĠĠĠĠ Ġ* Ġobject Ġis Ġignored . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd (` object `: ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// assert ( count Ġ< Ġm Contents . size ) Ġ{ Ġ" Array Ġex hausted !" Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ< Ġm Contents . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Contents [ count ] Ġ= Ġ` object ` ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Sorted Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠS ear ches Ġfor Ġan Ġobject Ġand Ġremoves Ġit Ġfrom Ġthe Ġarray Ġif Ġit Ġis Ġfound . Ġ ĠOther Ġindexes Ġin Ġthe ĊĠĠĠĠ Ġ* Ġarray Ġare Ġshifted Ġup Ġto Ġfill Ġthe Ġspace Ġleft Ġby Ġthe Ġremoved Ġobject . Ġ ĠNote Ġthat Ġif ĊĠĠĠĠ Ġ* Ġignore Comparator Ġis Ġset Ġto Ġtrue , Ġa Ġlinear Ġsearch Ġof Ġobject Ġreferences Ġwill Ġbe Ġperformed . ĊĠĠĠĠ Ġ* ĠOtherwise , Ġthe Ġcomparator Ġset Ġon Ġthis Ġarray Ġ( if Ġany ) Ġwill Ġbe Ġused Ġto Ġfind Ġthe Ġobject . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġremove (` object `: ĠT , Ġignore Comparator : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġfind (` object `, Ġignore Comparator ) ĊĠĠĠĠĠĠĠ Ġif Ġ( index Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove ( index ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemoves Ġthe Ġspecified Ġindex Ġfrom Ġthe Ġarray . Ġ ĠSub sequent Ġentries Ġin Ġthe Ġarray Ġare Ġshifted Ġup ĊĠĠĠĠ Ġ* Ġto Ġfill Ġthe Ġspace . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġremove ( index : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// assert ( index Ġ< Ġcount ) ĊĠĠĠĠĠĠĠ Ġ// Ġ ugh ĊĠĠĠĠĠĠĠ Ġif Ġ( index Ġ< Ġcount ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( x Ġin Ġindex Ġuntil Ġcount ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( x Ġ+ Ġ 1 Ġ< Ġm Contents . size Ġ&& Ġx Ġ+ Ġ 1 Ġ< Ġcount ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Contents [ x ] Ġ= Ġm Contents [ x Ġ+ Ġ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Contents [ x ] Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount -- ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemoves Ġthe Ġlast Ġelement Ġin Ġthe Ġarray Ġand Ġreturns Ġit . Ġ ĠThis Ġmethod Ġis Ġfaster Ġthan Ġcalling ĊĠĠĠĠ Ġ* Ġremove ( count Ġ- 1 ); ĊĠĠĠĠ Ġ* Ġ@ return ĠThe Ġcontents Ġof Ġthe Ġlast Ġelement Ġin Ġthe Ġarray . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġremove Last (): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġ` object `: ĠT ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ` object ` Ġ= Ġm Contents [ count Ġ- Ġ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Contents [ count Ġ- Ġ 1 ] Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount -- ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ` object ` ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSw aps Ġthe Ġelement Ġat Ġthe Ġpassed Ġindex Ġwith Ġthe Ġelement Ġat Ġthe Ġend Ġof Ġthe Ġarray . Ġ ĠWhen ĊĠĠĠĠ Ġ* Ġfollowed Ġby Ġremove Last (), Ġthis Ġis Ġuseful Ġfor Ġquickly Ġremoving Ġarray Ġelements . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġswap With Last ( index : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ> Ġ 0 Ġ&& Ġindex Ġ< Ġcount Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ` object ` Ġ= Ġm Contents [ count Ġ- Ġ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Contents [ count Ġ- Ġ 1 ] Ġ= Ġm Contents [ index ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Contents [ index ] Ġ= Ġ` object ` ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Sorted Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthe Ġvalue Ġof Ġa Ġspecific Ġindex Ġin Ġthe Ġarray . Ġ ĠAn Ġobject Ġmust Ġhave Ġalready Ġbeen Ġadded Ġto ĊĠĠĠĠ Ġ* Ġthe Ġarray Ġat Ġthat Ġindex Ġfor Ġthis Ġcommand Ġto Ġcomplete . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoperator Ġfun Ġset ( index : ĠInt , Ġ` object `: ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// assert ( index Ġ< Ġcount ) ĊĠĠĠĠĠĠĠ Ġif Ġ( index Ġ< Ġcount ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Contents [ index ] Ġ= Ġ` object ` ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠClear s Ġthe Ġcontents Ġof Ġthe Ġarray , Ġreleasing Ġall Ġreferences Ġto Ġobjects Ġit Ġcontains Ġand ĊĠĠĠĠ Ġ* Ġsetting Ġits Ġcount Ġto Ġzero . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( x Ġin Ġ 0 Ġuntil Ġcount ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Contents [ x ] Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcount Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġm Sorted Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġan Ġentry Ġfrom Ġthe Ġarray Ġat Ġthe Ġspecified Ġindex . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoperator Ġfun Ġget ( index : ĠInt ): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// assert ( index Ġ< Ġcount ) ĊĠĠĠĠĠĠĠ Ġvar Ġresult : ĠT ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( index Ġ< Ġcount Ġ&& Ġindex Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġm Contents [ index ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġraw Ġinternal Ġarray . Ġ ĠEx posed Ġhere Ġso Ġthat Ġtight Ġloops Ġcan Ġcache Ġthis Ġarray ĊĠĠĠĠ Ġ* Ġand Ġwalk Ġit Ġwithout Ġthe Ġoverhead Ġof Ġrepeated Ġfunction Ġcalls . Ġ ĠB ew are Ġthat Ġchanging Ġthis Ġarray ĊĠĠĠĠ Ġ* Ġcan Ġleave ĠFixed Size Array Ġin Ġan Ġundefined Ġstate , Ġso Ġthis Ġfunction Ġis Ġpotentially Ġdangerous ĊĠĠĠĠ Ġ* Ġand Ġshould Ġbe Ġused Ġin Ġread - only Ġcases . ĊĠĠĠĠ Ġ* Ġ@ return ĠThe Ġinternal Ġstorage Ġarray . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġarray : ĠArray < T ?> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Contents ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠS ear ches Ġthe Ġarray Ġfor Ġthe Ġspecified Ġobject . Ġ ĠIf Ġthe Ġarray Ġhas Ġbeen Ġsorted Ġwith Ġsort (), ĊĠĠĠĠ Ġ* Ġand Ġif Ġno Ġother Ġorder - changing Ġevents Ġhave Ġoccurred Ġsince Ġthe Ġsort Ġ( e . g . Ġadd ()), Ġa ĊĠĠĠĠ Ġ* Ġbinary Ġsearch Ġwill Ġbe Ġperformed . Ġ ĠIf Ġa Ġcomparator Ġhas Ġbeen Ġspecified Ġwith Ġset Comparator (), ĊĠĠĠĠ Ġ* Ġit Ġwill Ġbe Ġused Ġto Ġperform Ġthe Ġsearch . Ġ ĠIf Ġnot , Ġthe Ġdefault Ġcomparator Ġfor Ġthe Ġobject Ġtype ĊĠĠĠĠ Ġ* Ġwill Ġbe Ġused . Ġ ĠIf Ġthe Ġarray Ġis Ġun sorted , Ġa Ġlinear Ġsearch Ġis Ġperformed . ĊĠĠĠĠ Ġ* ĠNote Ġthat Ġif Ġignore Comparator Ġis Ġset Ġto Ġtrue , Ġa Ġlinear Ġsearch Ġof Ġobject Ġreferences Ġwill Ġbe ĊĠĠĠĠ Ġ* Ġperformed . ĠOtherwise , Ġthe Ġcomparator Ġset Ġon Ġthis Ġarray Ġ( if Ġany ) Ġwill Ġbe Ġused Ġto Ġfind Ġthe ĊĠĠĠĠ Ġ* Ġobject . ĊĠĠĠĠ Ġ* Ġ@ param Ġobject Ġ ĠThe Ġobject Ġto Ġsearch Ġfor . ĊĠĠĠĠ Ġ* Ġ@ return Ġ ĠThe Ġindex Ġof Ġthe Ġobject Ġin Ġthe Ġarray , Ġor Ġ- 1 Ġif Ġthe Ġobject Ġis Ġnot Ġfound . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfind (` object `: ĠT , Ġignore Comparator : ĠBoolean ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġcount ĊĠĠĠĠĠĠĠ Ġval Ġsorted Ġ= Ġm Sorted ĊĠĠĠĠĠĠĠ Ġval Ġcomparator : ĠComparator < T ?> ? Ġ= Ġm Comparator ĊĠĠĠĠĠĠĠ Ġval Ġcontents Ġ= Ġm Contents ĊĠĠĠĠĠĠĠ Ġif Ġ( sorted Ġ&& Ġ! ignore Comparator Ġ&& Ġcount Ġ> ĠLINE AR _ SEARCH _ CUT OFF ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġif Ġ( comparator Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArrays . binary Search ( contents , Ġ` object `, Ġcomparator ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArrays . binary Search ( contents , Ġ` object `) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠArrays . binary Search () Ġreturns Ġa Ġnegative Ġinsertion Ġindex Ġif Ġthe Ġobject Ġisn 't Ġfound , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġbut Ġwe Ġjust Ġwant Ġa Ġboolean . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġun sorted , Ġlinear Ġsearch ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( comparator Ġ!= Ġnull Ġ&& Ġ! ignore Comparator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( x Ġin Ġ 0 Ġuntil Ġcount ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcomparator . compare ( contents [ x ], Ġ` object `) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġx ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( result Ġ> Ġ 0 Ġ&& Ġsorted ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwe 've Ġpassed Ġthe Ġobject , Ġearly Ġout ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( x Ġin Ġ 0 Ġuntil Ġcount ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( contents [ x ] Ġ=== Ġ` object `) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġx ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġindex ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSort s Ġthe Ġarray . Ġ ĠIf Ġthe Ġarray Ġis Ġalready Ġsorted , Ġno Ġwork Ġwill Ġbe Ġperformed Ġunless ĊĠĠĠĠ Ġ* Ġthe Ġforce Res ort Ġparameter Ġis Ġset Ġto Ġtrue . Ġ ĠIf Ġa Ġcomparator Ġhas Ġbeen Ġspecified Ġwith ĊĠĠĠĠ Ġ* Ġset Comparator (), Ġit Ġwill Ġbe Ġused Ġfor Ġthe Ġsort ; Ġotherwise Ġthe Ġobject 's Ġnatural Ġordering Ġwill ĊĠĠĠĠ Ġ* Ġbe Ġused . ĊĠĠĠĠ Ġ* Ġ@ param Ġforce Res ort Ġ ĠIf Ġset Ġto Ġtrue , Ġthe Ġarray Ġwill Ġbe Ġres orted Ġeven Ġif Ġthe Ġorder Ġof Ġthe ĊĠĠĠĠ Ġ* Ġobjects Ġin Ġthe Ġarray Ġhas Ġnot Ġchanged Ġsince Ġthe Ġlast Ġsort . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsort ( force Res ort : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! m Sorted Ġ|| Ġforce Res ort ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Comparator Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Sorter . sort ( m Contents , Ġcount , Ġm Comparator !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDebug Log . d (" Fixed Size Array ", Ġ" No Ġcomparator Ġspecified Ġfor Ġthis Ġtype , Ġusing ĠArrays . sort (). ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArrays . sort ( m Contents , Ġ 0 , Ġcount ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Sorted Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠReturns Ġthe Ġmaximum Ġnumber Ġof Ġobjects Ġthat Ġcan Ġbe Ġinserted Ġin ot Ġthis Ġarray . Ġ Ġ*/ ĊĠĠĠ Ġfun Ġget Capacity (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Contents . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠSets Ġa Ġcomparator Ġto Ġuse Ġfor Ġsorting Ġand Ġsearching . Ġ Ġ*/ ĊĠĠĠ Ġfun Ġset Comparator ( comparator : ĠComparator < T ?> ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Comparator Ġ= Ġcomparator ĊĠĠĠĠĠĠĠ Ġm Sorted Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Sorter ( sorter : ĠSort er < T ?> ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Sorter Ġ= Ġsort er ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLINE AR _ SEARCH _ CUT OFF Ġ= Ġ 1 6 ĊĠĠĠ Ġ} Ċ }