/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 . Ġxmm mm mo vo Ċ Ġ*/ Ċ package Ġds Ċ Ċ import Ġjava . util . Deque Ċ Ċ /** Ċ Ġ* Ġ åıĮ åĲĳ éĺŁåĪĹ ç±» Ċ Ġ* Ġ@ author Ġxmm mm mo vo Ċ Ġ* Ġ@ date Ġ 2 0 2 0 / 7 / 2 8 Ġ 1 6 : 4 5 Ċ Ġ* Ġ@ since Ġversion - 1 . 0 Ċ Ġ*/ Ċ class ĠDe que < T > Ġ: ĠCollection < T > Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlist Ġ= ĠLinkedList < T >() ĊĊĠĠĠ Ġoverride Ġfun ĠisEmpty () Ġ= Ġlist . size Ġ== Ġ 0 ĊĊĠĠĠ Ġfun Ġpush Left ( element : ĠT ) Ġ= Ġlist . add First ( element ) ĊĊĠĠĠ Ġfun Ġpush Right ( element : ĠT ) Ġ= Ġlist . add Last ( element ) ĊĊĠĠĠ Ġfun Ġpop Left (): ĠT Ġ= Ġlist . remove First () ĊĊĠĠĠ Ġfun Ġpop Right (): ĠT Ġ= Ġlist . remove Last () ĊĊĠĠĠ Ġoverride Ġval Ġsize : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġlist . size ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæĺ¯åĲ¦ åĮħåĲ« [ element ] ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġcontains ( element : ĠT ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠindexOf ( element ) Ġ!= Ġ- 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæĺ¯åĲ¦ åĮħåĲ« æīĢæľī [ elements ] ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġcontains All ( elements : ĠCollection < T >): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( elements . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelements . all Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontains ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠæŁ¥ çľĭ [ element ] çļĦ ä½įç½® ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠindexOf ( element : ĠT ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġthis . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ== Ġelement ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġindex ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlist . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġiterator (): ĠIterator < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlist . iterator () ĊĠĠĠ Ġ} Ċ }