CodeGym/Java Blog/рдпрд╛рджреГрдЪреНрдЫрд┐рдХ/рдЬрд╛рд╡рд╛ рд╕реНрдЯреЕрдХ
John Squirrels
рдкрд╛рддрд│реА 41
San Francisco

рдЬрд╛рд╡рд╛ рд╕реНрдЯреЕрдХ

рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдпрд╛ рдЧреНрд░реБрдкрдордзреНрдпреЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓реЗ
рд╕рджрд╕реНрдп
Java рдордзреАрд▓ рд╕реНрдЯреЕрдХрдЪрд╛ рдЕрд░реНрде рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдХрд▓реЗрдХреНрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХрдордзреАрд▓ рд╡рд░реНрдЧ рдЖрд╣реЗ рдЬреЛ рд╕реВрдЪреА рдЗрдВрдЯрд░рдлреЗрд╕ рд▓рд╛рдЧреВ рдХрд░рддреЛ. рд╣реЗ рд╕реНрдЯреЕрдХ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░рдЪреНрдпрд╛ рддрддреНрддреНрд╡рд╛рд╡рд░ рдХрд╛рд░реНрдп рдХрд░рддреЗ, рдЬреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдореЗрдорд░реАрдЪреНрдпрд╛ рдкреНрд░рдХрд╛рд░рд╛рдВрдкреИрдХреА рдПрдХ рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рддрд╕реЗрдЪ рдбреЗрдЯрд╛ рдареЗрд╡рдгреЗ рд╣рд╛ рдореЗрдорд░реАрдЪрд╛ рднрд╛рдЧ рдЕрд╕реВ рд╢рдХрддреЛ, рдпрд╛ рд▓реЗрдЦрд╛рдд рдЖрдкрдг рд╕реНрдЯреЕрдХ рдХреНрд▓рд╛рд╕рдХрдбреЗ рд╕рд░реНрд╡рдкреНрд░рдердо рд▓рдХреНрд╖ рджреЗрдК , рддреНрдпрд╛рдЪреНрдпрд╛ рдкрджреНрдзрддреАрдВрдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░реВ рдЖрдгрд┐ рдЙрджрд╛рд╣рд░рдгреЗ рджреЗрдК. рдкрд░рдВрддреБ рдЖрдореНрд╣реА рд╕реНрдЯреЕрдХрд╕рд╛рд░рдЦреНрдпрд╛ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░рдмрджреНрджрд▓ рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ рдпрд╛рдмрджреНрджрд▓ рджреЗрдЦреАрд▓ рдмреЛрд▓реВ .

рд╕реНрдЯреЕрдХ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп

рд╕рд░реНрд╡рдкреНрд░рдердо, рд╕реНрдЯреЕрдХ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рддреЗ рдкрд╛рд╣реВ. рд╣реА рдПрдХ рд░реЗрдЦреАрдп рдбреЗрдЯрд╛ рд░рдЪрдирд╛ рдЖрд╣реЗ рдЬреА рд▓рд╛рд╕реНрдЯ-рдЗрди-рдлрд░реНрд╕реНрдЯ-рдЖрдЙрдЯ (LIFO) рддрддреНрддреНрд╡рд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ. рд╣рд╛ рдПрдХ рдкреНрд░рдХрд╛рд░рдЪрд╛ рдЕрдБрдЯреА-рдХреНрдпреВ рдЖрд╣реЗ. рдПрдХрд╛ рдмреЙрдХреНрд╕рдордзреНрдпреЗ рдХрд╛рд░реНрдбрд╛рдВрдЪреНрдпрд╛ рдбреЗрдХрдЪреА рдХрд┐рдВрд╡рд╛ рдкреБрд╕реНрддрдХрд╛рдВрдЪреНрдпрд╛ рд╕реНрдЯреЕрдХрдЪреА рдХрд▓реНрдкрдирд╛ рдХрд░рд╛. рддреБрдореНрд╣реА рдЬреЗ рдкреБрд╕реНрддрдХ рдЖрдзреА рд╕реНрдЯреЕрдХрдордзреНрдпреЗ рдареЗрд╡рд▓реЗ рддреЗ рддрд│рд╛рд╢реА рдЖрд╣реЗ, рдЖрдгрд┐ рд╕рд░реНрд╡рд╛рдд рдЖрдзреА рдЖрдкрдг рдмреЙрдХреНрд╕рдордзреВрди рдмрд╛рд╣реЗрд░ рдХрд╛рдвреВ рддреЗ рд╕рд░реНрд╡рд╛рдд рд╡рд░рдЪреЗ рдкреБрд╕реНрддрдХ рдЖрд╣реЗ - рдореНрд╣рдгрдЬреЗ, рдЬреЗ рдмреЙрдХреНрд╕рдордзреНрдпреЗ рд╕рд░реНрд╡рд╛рдд рд╢реЗрд╡рдЯреА рдЖрд▓реЗ. рд╣реЗ рддрддреНрддреНрд╡ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпреЗрдереЗ рдПрдХ gif рдЪрд┐рддреНрд░ рдЖрд╣реЗ. рдЬрд╛рд╡рд╛ рд╕реНрдЯреЕрдХ - резрдЗрдереЗ рдХрд╛рдп рдЪрд╛рд▓рд▓реЗ рдЖрд╣реЗ? рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХ рдлреНрд▓рд╛рд╕реНрдХ рдЖрд╣реЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рдПрдХрд╛ рд╡реЗрд│реА рдПрдХрдЪ рдЪреЗрдВрдбреВ рдорд╛рд░рддрд╛ рдпреЗрддреЛ. рдлреНрд▓рд╛рд╕реНрдХрдордзреНрдпреЗ рдкрд╣рд┐рд▓рд╛ рдирд╛рд░рд┐рдВрдЧреА рдмреЙрд▓ рдЖрд╣реЗ, рдирдВрддрд░ рдЬрд╛рдВрднрд│рд╛ рдЖрдгрд┐ рд╢реЗрд╡рдЯреА рд╣рд┐рд░рд╡рд╛ (рдЬреНрдпрд╛рдВрдирд╛ рдпрд╛ рд░рдВрдЧрд╛рдВрдЪреА рдЕрдзрд┐рдХ рдЕрдЪреВрдХ рдирд╛рд╡реЗ рдорд╛рд╣рд┐рдд рдЖрд╣реЗрдд рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рдореА рджрд┐рд▓рдЧреАрд░ рдЖрд╣реЛрдд). рддрдерд╛рдкрд┐, рдЖрдордЪреНрдпрд╛ рдлреНрд▓рд╛рд╕реНрдХ-рд╕реНрдЯреЕрдХрдордзреВрди рдХреЗрд╢рд░реА рдмреЙрд▓ рдХрд╛рдврдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рдердо рддреЗрдереЗ рдЖрд▓реЗрд▓рд╛ рдЪреЗрдВрдбреВ (рд╣рд┐рд░рд╡рд╛ рдЪреЗрдВрдбреВ) рдХрд╛рдврд╛рд╡рд╛ рд▓рд╛рдЧреЗрд▓, рдирдВрддрд░ рддреЛ рд╢реЗрд╡рдЯрдЪрд╛ рд╣реЛрддрд╛ (рдкрд░рдВрддреБ рдХрд╛рдврдгреНрдпрд╛рдЪреНрдпрд╛ рд╡реЗрд│реА рддреЛ рд╢реЗрд╡рдЯрдЪрд╛ рдЕрд╕реЗрд▓. рдПрдХ). Java рдордзреАрд▓ рд╕реНрдЯреЕрдХ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░рдордзреНрдпреЗ рдХрд┐рдВрд╡рд╛ рдЗрддрд░рддреНрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрдордзреНрдпреЗ рдкреБрд╢ рдЖрдгрд┐ рдкреЙрдк рдпрд╛ рджреЛрди рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрддреНрд╡рд╛рдЪреНрдпрд╛ рдСрдкрд░реЗрд╢рдиреНрд╕ рдЖрд╣реЗрдд . рдкреБрд╢ рдСрдкрд░реЗрд╢рди рд╕реНрдЯреЕрдХрдордзреНрдпреЗ рдПрдХ рдШрдЯрдХ рдШрд╛рд▓рддреЗ рдЖрдгрд┐ рдкреЙрдк рдСрдкрд░реЗрд╢рди рд╕реНрдЯреЕрдХрдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА рдПрдХ рдШрдЯрдХ рдХрд╛рдвреВрди рдЯрд╛рдХрддреЗ.

рд╕реНрдЯреЕрдХ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХрд╢рд╛рд╕рд╛рдареА рдЖрд╣реЗ?

рд╕реНрдЯреЕрдХрдЪрд╛ рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрддреНрд╡рд╛рдЪрд╛ рдЙрдкрдпреЛрдЧ рдореНрд╣рдгрдЬреЗ рд╕рдмрд░реВрдЯреАрди рдХреЙрд▓реНрд╕ рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреЗ. рд╕реНрдЯреЕрдХрд╡рд░реАрд▓ рдХреЙрд▓ рдкреЙрдЗрдВрдЯ рд╕рдмрд░реВрдЯреАрди рд╕рдВрдкрд▓реНрдпрд╛рдирдВрддрд░ рдкрд░рддреАрдЪрд╛ рдкрддреНрддрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЛ (рдЖрдгрд┐ рд╢рдХреНрдпрддреЛ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдкрд╛рд╕). рд╕рдмрд░реВрдЯреАрдирдЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдиреЗрд╕реНрдЯреЗрдб (рдкреБрдирд░рд╛рд╡рд░реНрддреАрд╕рд╣) рдХреЙрд▓рд╕рд╣, рдирд╡реАрди рд░рд┐рдЯрд░реНрди рдкрддреНрддреЗ рд╕реНрдЯреЕрдХрдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЬрд╛рддрд╛рдд. рд╕рдмрд░реВрдЯреАрди (рд░рд┐рдЯрд░реНрди) рдЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдЯрд░реНрди рдСрдкрд░реЗрд╢рдирд╕рд╣, рдкрд░рддреАрдЪрд╛ рдкрддреНрддрд╛ рд╕реНрдЯреЕрдХрдордзреВрди рдХрд╛рдвреВрди рдЯрд╛рдХрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рдирд┐рдпрдВрддреНрд░рдг рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рд╣реЗ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрд╕рд╛рдареА рдЗрддрдХреЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ рдХреА рдмрд╣реБрддреЗрдХ рдкреНрд░реЛрд╕реЗрд╕рд░рдордзреНрдпреЗ рд░рд┐рдЯрд░реНрди рд╕реНрдЯреЕрдХ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░рдордзреНрдпреЗ рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рд╕реЗрдЯрдордзреНрдпреЗ рд▓рд╛рдЧреВ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рддрдерд╛рдкрд┐, рдЗрддрд░ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ, рд╕реНрдЯреЕрдХрд▓рд╛ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕рд╡рд░ рдореЙрдбреЗрд▓ рдХреЗрд▓реЗ рдЬрд╛рд╡реЗ.

рдЬрд╛рд╡рд╛ рд╕реНрдЯреЕрдХ рдХреНрд▓рд╛рд╕ рдСрдл рдХрд▓реЗрдХреНрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХ

Java рдордзреНрдпреЗ рд╕реНрдЯреЕрдХ рдХреНрд▓рд╛рд╕ рд╣рд╛ рдХрд▓реЗрдХреНрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХрдЪрд╛ рдПрдХ рд╡рд░реНрдЧ рдЖрд╣реЗ рдЬреЛ рд▓рд┐рд╕реНрдЯ рдЗрдВрдЯрд░рдлреЗрд╕ рд▓рд╛рдЧреВ рдХрд░рддреЛ рдЖрдгрд┐ рд╡реЗрдХреНрдЯрд░ рдХреНрд▓рд╛рд╕ рд╡рд╛рдврд╡рддреЛ. рд╣реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд▓реЗрдХреНрд╢рди, рдЗрдЯрд░реЗрдмрд▓, рдХреНрд▓реЛрди рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп, рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рджреЗрдЦреАрд▓ рд▓рд╛рдЧреВ рдХрд░рддреЗ. рддреБрдореНрд╣реА рдХрджрд╛рдЪрд┐рдд рдЖрдзреАрдЪ рдЕрдВрджрд╛рдЬ рдХреЗрд▓рд╛ рдЕрд╕реЗрд▓ рдХреА рд╣рд╛ рд╡рд░реНрдЧ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреНрдпрд╛ LIFO рд╕реНрдЯреЕрдХрдЪреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЛ. рдпреЗрдереЗ рд╕реНрдЯреЕрдХ рдХреНрд▓рд╛рд╕рдЪреНрдпрд╛ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рд▓рд╛ рдХреЙрд▓ рдЖрд╣реЗ , рдореНрд╣рдгрдЬреЗрдЪ рдпрд╛ рдХреНрд▓рд╛рд╕рдЪреНрдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯрдЪреА рдирд┐рд░реНрдорд┐рддреА.
Stack<E> stack = new Stack<E>();
рдЬреЗрдереЗ рдИ рдСрдмреНрдЬреЗрдХреНрдЯрдЪрд╛ рдкреНрд░рдХрд╛рд░ рдЖрд╣реЗ.

рдЬрд╛рд╡рд╛ рд╕реНрдЯреЕрдХ рдкрджреНрдзрддреА

рдпрд╛ рд╡рд░реНрдЧрд╛рдд рдлрдХреНрдд рдПрдХрдЪ рдбрд┐рдлреЙрд▓реНрдЯ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЖрдгрд┐ рд╡реЗрдХреНрдЯрд░ рд╡рд░реНрдЧрд╛рдЪреНрдпрд╛ рд╕рд░реНрд╡ рдкрджреНрдзрддреА рдЖрд╣реЗрдд . рддрд╕реЗрдЪ, рд╕реНрдЯреЕрдХрдЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ 5 рдкрджреНрдзрддреА рдЖрд╣реЗрдд:
  • boolean empty() рдкрджреНрдзрдд рд╕реНрдЯреЕрдХ рд░рд┐рдХреНрдд рдЖрд╣реЗ рдХреА рдирд╛рд╣реА рд╣реЗ рддрдкрд╛рд╕рддреЗ. рд╕реНрдЯреЕрдХ рд░рд┐рдХрд╛рдореЗ рдЕрд╕рд▓реНрдпрд╛рд╕ рд╕рддреНрдп рдорд┐рд│рд╡рддреЗ , рдирд╕рд▓реНрдпрд╛рд╕ рдЕрд╕рддреНрдп рдорд┐рд│рд╡рддреЗ.

  • рдСрдмреНрдЬреЗрдХреНрдЯ рдкреАрдХ() рдкрджреНрдзрдд рд╕реНрдЯреЕрдХрдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА рдЕрд╕рд▓реЗрд▓рд╛ рдШрдЯрдХ рдкрд░рдд рдХрд░рддреЗ.

  • рдСрдмреНрдЬреЗрдХреНрдЯ рдкреЙрдк() рдкрджреНрдзрдд рд╕реНрдЯреЕрдХрдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА рдЕрд╕рд▓реЗрд▓рд╛ рдШрдЯрдХ рдкрд░рдд рдХрд░рддреЗ рдЖрдгрд┐ рдХрд╛рдвреВрди рдЯрд╛рдХрддреЗ.

  • рдСрдмреНрдЬреЗрдХреНрдЯ рдкреБрд╢ (рдСрдмреНрдЬреЗрдХреНрдЯ рдПрд▓рд┐рдореЗрдВрдЯ) рдкрджреНрдзрдд рд╕реНрдЯреЕрдХрдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдШрдЯрдХ рдЬреЛрдбрддреЗ.

  • рдЗрдВрдЯ рд╕рд░реНрдЪ (рдСрдмреНрдЬреЗрдХреНрдЯ рдПрд▓рд┐рдореЗрдВрдЯ) рдкрджреНрдзрдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдШрдЯрдХрд╛рд╕рд╛рдареА рд╕реНрдЯреЕрдХ рд╢реЛрдзрддреЗ. рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХ рдЖрдврд│рд▓реНрдпрд╛рд╕, рд╡рд░реВрди рддреНрдпрд╛рдЪреЗ "рдЕрдВрддрд░" (рдЕрдиреБрдХреНрд░рдорд╛рдВрдХ) рдкрд░рдд рдХреЗрд▓реЗ рдЬрд╛рдИрд▓. рдЬрд░ рдШрдЯрдХ рд╕рд╛рдкрдбрд▓рд╛ рдирд╛рд╣реА, рддрд░ -1 рдкрд░рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.

рд╕реНрдЯреЕрдХ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг

рдЪрд▓рд╛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЙрджрд╛рд╣рд░рдг рддрдпрд╛рд░ рдХрд░реВ рдЬреЗ рд╡рд░реАрд▓ gif рдЪрд┐рддреНрд░рд╛рдкреНрд░рдорд╛рдгреЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ. рдЖрдореНрд╣реА рд╕реНрдЯреЕрдХрд╡рд░ рддреАрди "рдмреЙрд▓", рдХреЗрд╢рд░реА, рдЬрд╛рдВрднрд│рд╛ рдЖрдгрд┐ рд╣рд┐рд░рд╡рд╛ рдареЗрд╡реВ. рд░рд┐рдХреНрддрдкрдгрд╛рд╕рд╛рдареА рд╕реНрдЯреЕрдХ рддрдкрд╛рд╕реВрдпрд╛. рддреНрдпрд╛рдирдВрддрд░, рд╕реНрдЯреЕрдХ рд░рд┐рдХрд╛рдорд╛ рд╣реЛрдИрдкрд░реНрдпрдВрдд рдЖрдореНрд╣реА рд╕реНрдЯреЕрдХрдордзреВрди рдЧреЛрд│реЗ рдХрд╛рдвреВ.
import java.util.Stack;

public class myStackTest2 {

       public static void main(String[] args)
       {

           Stack myStack= new Stack<>();

           System.out.println("Is my stack empty? " + myStack.empty());
// pushing elements into stack
           myStack.push("Orange Ball");
           myStack.push("Violet Ball");
           myStack.push("Green Ball");

//prints elements of the stack
           System.out.println("Elements in Stack: " + myStack);
           System.out.println("Is my stack empty? " + myStack.empty());
           while (!myStack.isEmpty()) {
               myStack.pop();
               System.out.println("Elements in Stack: " + myStack);
               System.out.println("Is my stack empty? " + myStack.empty());
           }
       }
   }
рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреЗ рдЖрдЙрдЯрдкреБрдЯ рдпреЗрдереЗ рдЖрд╣реЗ:
рдорд╛рдЭреЗ рд╕реНрдЯреЕрдХ рд░рд┐рдХрд╛рдореЗ рдЖрд╣реЗ рдХрд╛? рд╕реНрдЯреЕрдХрдордзреАрд▓ рдЦрд░реЗ рдШрдЯрдХ: [рдСрд░реЗрдВрдЬ рдмреЙрд▓, рд╡реНрд╣рд╛рдпрд▓реЗрдЯ рдмреЙрд▓, рдЧреНрд░реАрди рдмреЙрд▓] рдорд╛рдЭреЗ рд╕реНрдЯреЕрдХ рд░рд┐рдХрд╛рдореЗ рдЖрд╣реЗ рдХрд╛? рд╕реНрдЯреЕрдХрдордзреАрд▓ рдЦреЛрдЯреЗ рдШрдЯрдХ: [рдСрд░реЗрдВрдЬ рдмреЙрд▓, рд╡реНрд╣рд╛рдпрд▓реЗрдЯ рдмреЙрд▓] рдорд╛рдЭреЗ рд╕реНрдЯреЕрдХ рд░рд┐рдХрд╛рдореЗ рдЖрд╣реЗ рдХрд╛? рд╕реНрдЯреЕрдХрдордзреАрд▓ рдЦреЛрдЯреЗ рдШрдЯрдХ: [рдСрд░реЗрдВрдЬ рдмреЙрд▓] рдорд╛рдЭреЗ рд╕реНрдЯреЕрдХ рд░рд┐рдХрд╛рдореЗ рдЖрд╣реЗ рдХрд╛? рд╕реНрдЯреЕрдХрдордзреАрд▓ рдЦреЛрдЯреЗ рдШрдЯрдХ: [] рдорд╛рдЭреЗ рд╕реНрдЯреЕрдХ рд░рд┐рдХреНрдд рдЖрд╣реЗ рдХрд╛? рдЦрд░реЗ
рд╕реНрдЯреЕрдХрд▓рд╛ рд╡реЗрдХреНрдЯрд░ рдХреНрд▓рд╛рд╕ рдХрдбреВрди рд╡рд╛рд░рд╕рд╛ рдорд┐рд│рд╛рд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ рд▓рд┐рд╕реНрдЯ рдЗрдВрдЯрд░рдлреЗрд╕ рд▓рд╛рдЧреВ рдХрд░рдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ , рдШрдЯрдХ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдХрд╛рдврдгреНрдпрд╛рд╕рд╛рдареА рдпрд╛ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░рд╕рд╛рдареА рдХреНрд▓рд╛рд╕рд┐рдХ рдкреБрд╢ рдЖрдгрд┐ рдкреЙрдк рдСрдкрд░реЗрд╢рдиреНрд╕ рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рд╕реНрдЯреЕрдХрдордзреНрдпреЗ рд▓рд┐рд╕реНрдЯ рд╕реНрдЯреНрд░рдХреНрдЪрд░ add() рдЖрдгрд┐ рд░рд┐рдореВрд╡реНрд╣() рдСрдкрд░реЗрд╢рдиреНрд╕рд╕рд╛рдареА рдорд╛рдирдХ рджреЗрдЦреАрд▓ рдЖрд╣реЗрдд. рдЖрдордЪреНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдд, add() рдкрджреНрдзрдд рд╡рд╛рдкрд░реВрди рдШрдЯрдХ рдЬреЛрдбрдгреЗ рддреНрдпрд╛рдЪ рдкреНрд░рдХрд╛рд░реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ . рддрдерд╛рдкрд┐, рддреБрдореНрд╣реА рдлрдХреНрдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдШрдЯрдХрд╛рд╕рд╣ remove() рд╡рд╛рдкрд░реВрди рдХрд╛рдвреВ рд╢рдХрддрд╛ , рдЬреНрдпрд╛рдореБрд│реЗ рд╕реНрдЯреЕрдХ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░рд▓рд╛ рдХрд╛рд╣реАрдЪ рдЕрд░реНрде рдирд╛рд╣реА.
import java.util.Stack;

public class myStackTest2 {

       public static void main(String[] args)
       {

           Stack myStack= new Stack<>();

           System.out.println("Is my stack empty? " + myStack.empty());
// pushing elements into stack
           myStack.add("Orange Ball");
           myStack.add("Violet Ball");
           myStack.add("Green Ball");

//prints elements of the stack
           System.out.println("Elements in Stack: " + myStack);
           System.out.println("Is my stack empty? " + myStack.empty());
           while (!myStack.isEmpty()) {
               myStack.pop();
               System.out.println("Elements in Stack: " + myStack);
               System.out.println("Is my stack empty? " + myStack.empty());
           }
       }
   }
рдХрд╛рд░реНрдпрдХреНрд░рдорд╛рдЪреНрдпрд╛ рдХрд╛рдорд╛рдЪрд╛ рдкрд░рд┐рдгрд╛рдо рдирдХреНрдХреАрдЪ рд╕рд╛рд░рдЦрд╛рдЪ рдЕрд╕реЗрд▓.

рддреБрдордЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╕реНрдЯреЕрдХ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдмрджреНрджрд▓ рдХрд╛рдп?

рддреБрдореНрд╣реА рдЕреЕрд░реЗ рдХрд┐рдВрд╡рд╛ рд▓рд┐рдВрдХреНрдб рд▓рд┐рд╕реНрдЯ рдХреНрд▓рд╛рд╕реЗрд╕ рд╡рд╛рдкрд░реВрди Java рдордзреНрдпреЗ рддреБрдордЪреА рд╕реНрд╡рддрдГрдЪреА рд╕реНрдЯреЕрдХ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛. рдкрд╣рд┐рд▓реНрдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдореЗрдорд░реАрдордзреНрдпреЗ рдореВрд▓реНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реЗрд▓рдЪреА рд╕рддрдд рдЕреЕрд░реЗ рд╡рд╛рдЯрдк рдХреЗрд▓реА рдЬрд╛рддреЗ, рдЬреА рдЖрд╡рд╢реНрдпрдХрддреЗрдиреБрд╕рд╛рд░ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ. рджреБрд╕-рдпрд╛рдордзреНрдпреЗ, рд╕реНрдЯреЕрдХрдЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХрд╛рд╕рд╛рдареА, рдореЗрдорд░реАрдЪрд╛ рдПрдХ рдмреНрд▓реЙрдХ рдСрд░реНрдбрд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рдЬреЛ рд╕реНрдЯреЕрдХрдЪреНрдпрд╛ рдорд╛рдЧреАрд▓ рдЖрдгрд┐ рдкреБрдвреАрд▓ рдШрдЯрдХрд╛рдВрдЪреЗ рдореВрд▓реНрдп рдЖрдгрд┐ рд╕рдВрджрд░реНрдн рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреБрд░реЗрд╕рд╛ рдЕрд╕рддреЛ. рдЕтАНреЕрд░реЗ-рдЖрдзрд╛рд░рд┐рдд рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕реЛрдкреА, рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдо рдЖрдгрд┐ рдЕрдзрд┐рдХ рдореЗрдорд░реА рдХрд╛рд░реНрдпрдХреНрд╖рдо рдЖрд╣реЗ, рдкрд░рдВрддреБ рддреНрдпрд╛рд╕ рд╕реНрдЯреЕрдХ рдЖрдХрд╛рд░ рдорд░реНрдпрд╛рджреЗрдЪреЗ рдкреВрд░реНрд╡ рдЬреНрдЮрд╛рди рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рдпрд╛рдореБрд│реЗ рд╢реЛрдзрдгреЗ рдХрдареАрдг рд╣реЛрдК рд╢рдХрддреЗ. рд╕реВрдЪреА-рдЖрдзрд╛рд░рд┐рдд рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЕрдзрд┐рдХ рдордЬрдмреВрдд рдкрд░рдВрддреБ рдХрдореА рдХрд╛рд░реНрдпрдХреНрд╖рдо рдЖрд╣реЗ. рд╕реНрдЯреЕрдХрдЪреА рд╕реЛрдкреА рдЕреЕрд░реЗ-рдЖрдзрд╛рд░рд┐рдд рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░реВ. рддреНрдпрд╛рдд рдлрдВрдХреНрд╢рдиреНрд╕рдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЕрд╕реЗрд▓.
  • рдкреБрд╢ - рдПрдХ рдкрджреНрдзрдд рдЬреА рдШрдЯрдХ рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░реЗрд▓ (рд╢реАрд░реНрд╖ рд╕реНрдерд╛рдирд╛рд╡рд░)

  • рдкреЙрдк - рдПрдХ рдкрджреНрдзрдд рдЬреА рдШрдЯрдХ рдХрд╛рдвреВрди рдЯрд╛рдХрдгреНрдпрд╛рдЪреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрдИрд▓ (рд╡рд░рдЪреНрдпрд╛ рд╕реНрдерд╛рдирд╛рд╡рд░реВрди)

  • readTop тАФ рдПрдХ рдкрджреНрдзрдд рдЬреА рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдШрдЯрдХрд╛рдЪреЗ рдореВрд▓реНрдп рдкрд░рдд рдХрд░реЗрд▓

  • sEmpty тАФ рдПрдХ рдкрджреНрдзрдд рдЬреА рд░рд┐рдХреНрддрдкрдгрд╛рд╕рд╛рдареА рд╕реНрдЯреЕрдХ рддрдкрд╛рд╕реЗрд▓

  • isFull тАФ рдПрдХ рдкрджреНрдзрдд рдЬреА рдЖрдкрдг рд╕реНрдЯреЕрдХ рд╕рдВрдЪрдпрд┐рдд рдХрд░рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЕреЕрд░реЗрдордзреНрдпреЗ рднрд░рд▓реЗрд▓реЗ рдирд╛рд╣реА рдХрд╛ рд╣реЗ рддрдкрд╛рд╕реЗрд▓

import java.util.Arrays;

public class MyStack {

   private int maxSize;
   private String[] stackArray;
   private int top;

   public MyStack(int size) {
       this.maxSize = size;
       stackArray = new String[maxSize];
       top = -1;
   }

   public String push (String element) {
       return stackArray[++top] = element;

   }

   public String pop (String element) {

       if (isEmpty())
       {
           System.out.println("Underflow\nProgram Terminated");
           System.exit(-1);
       }

       System.out.println("Removing " + readTop());

       return stackArray[top--];

   }

   public String readTop() {
       return stackArray[top];

   }

   public boolean isEmpty() {
       return (top ==  -1);
   }

   public boolean isFull() {
       return (top == maxSize - 1);
   }

   public void printStack(){
       System.out.println(Arrays.toString(stackArray));
   }
}
рдЖрддрд╛ рдЖрдкрд▓реНрдпрд╛ рд╕реНрдЯреЕрдХрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рддреАрди рдмреЙрд▓реНрд╕рдЪреЗ рдЙрджрд╛рд╣рд░рдг рд▓рд╛рдЧреВ рдХрд░реВрдпрд╛:
public class myStackTest {
   public static void main(String[] args) {
       MyStack  myStack = new MyStack(3);
       System.out.println("Is my stack empty? " + myStack.isEmpty());

       myStack.push("Orange Ball");
       myStack.push("Violet Ball");
       myStack.push("Green Ball");

      myStack.printStack();

       System.out.println("Is my stack empty? " + myStack.isEmpty());
       while (!myStack.isEmpty()) {
           myStack.pop(myStack.readTop());
           System.out.println("Is my stack empty? " + myStack.isEmpty());
       }
   }

}
рдЖрдЙрдЯрдкреБрдЯ рдпреЗрдереЗ рдЖрд╣реЗ:
рдорд╛рдЭреЗ рд╕реНрдЯреЕрдХ рд░рд┐рдХрд╛рдореЗ рдЖрд╣реЗ рдХрд╛? рдЦрд░реЗ [рдСрд░реЗрдВрдЬ рдмреЙрд▓, рд╡реНрд╣рд╛рдпрд▓реЗрдЯ рдмреЙрд▓, рдЧреНрд░реАрди рдмреЙрд▓] рдорд╛рдЭреЗ рд╕реНрдЯреЕрдХ рд░рд┐рдХрд╛рдореЗ рдЖрд╣реЗ рдХрд╛? рдЦреЛрдЯреЗ рд╣рд┐рд░рд╡реЗ рдмреЙрд▓ рдХрд╛рдврдд рдЖрд╣реЗ рдорд╛рдЭреЗ рд╕реНрдЯреЕрдХ рд░рд┐рдХрд╛рдореЗ рдЖрд╣реЗ рдХрд╛? рдЦреЛрдЯреЗ рд╡реНрд╣рд╛рдпрд▓реЗрдЯ рдмреЙрд▓ рдХрд╛рдврдд рдЖрд╣реЗ рдорд╛рдЭреЗ рд╕реНрдЯреЕрдХ рд░рд┐рдХрд╛рдореЗ рдЖрд╣реЗ рдХрд╛? рдЦреЛрдЯреЗ рдСрд░реЗрдВрдЬ рдмреЙрд▓ рдХрд╛рдврдд рдЖрд╣реЗ рдорд╛рдЭреЗ рд╕реНрдЯреЕрдХ рд░рд┐рдХрд╛рдореЗ рдЖрд╣реЗ рдХрд╛? рдЦрд░реЗ
рдЖрдкрдг рдмрд╛рд░рдХрд╛рдИрдиреЗ рдкрд╛рд╣рд┐рд▓реНрдпрд╛рд╕, рд╢реАрд░реНрд╖ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдордзреНрдпреЗ рдЕрдВрддрд┐рдо рдШрдЯрдХрд╛рдЪреА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдЕрд╕рддреЗ рдЖрдгрд┐ рдСрдмреНрдЬреЗрдХреНрдЯрдЪрд╛ рд╕рдВрджрд░реНрдн рдЕреЕрд░реЗрдордзреНрдпреЗ рд░рд╛рд╣рддреЛ. рддреНрдпрд╛рдореБрд│реЗ рдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдд рдХрд╛рд╣реА рд╕реБрдзрд╛рд░рдгрд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд. рд╣реЗ рдХрд░рдгреНрдпрд╛рдЪрд╛ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкрд╛ рдорд╛рд░реНрдЧ рд╡рд┐рдЪрд╛рд░ рдХрд░рд╛.

рдЖрдкрдг Java Stack рд╡рд╛рдкрд░рд╛рд╡реЗ рдХрд╛?

рдЦрд░рдВ рддрд░, Java рд╕реНрдЯреЕрдХ , рддреНрдпрд╛рдЪреНрдпрд╛ рд╡реЗрдХреНрдЯрд░ рдкрд╛рд▓рдХрд╛рдкреНрд░рдорд╛рдгреЗ, рдПрдХ рд╡рд╛рд░рд╕рд╛ рд╡рд░реНрдЧ рдЖрд╣реЗ. рддреНрдпрд╛рдРрд╡рдЬреА, ArrayList рд╡рд░реНрдЧ рд╕рд╣рд╕рд╛ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ. рд╡реЗрдХреНрдЯрд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭ рдЕрд╕рддрд╛рдирд╛ ArrayList рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭ рд╣реЛрдд рдирд╛рд╣реА . рдпрд╛рдЪрд╛ рдЕрд░реНрде рд╡реНрд╣реЗрдХреНрдЯрд░рд╕рд╣ рдПрдХрд╛ рд╡реЗрд│реА рдлрдХреНрдд рдПрдХ рдереНрд░реЗрдб рдХреЛрдбрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░реВ рд╢рдХрддреЛ, рддрд░ ArrayList рдПрдХрд╛рдзрд┐рдХ рдереНрд░реЗрдбрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░реВ рд╢рдХрддреЗ. рддрд╕реЗрдЪ, ArrayList рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдо рдЖрдгрд┐ рдЬрд▓рдж рдЖрд╣реЗ. рддреНрдпрд╛рдореБрд│реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдмрд╣реБрдзрд╛ рд╣рд╛ рд╡рд░реНрдЧ рдлрдХреНрдд рд▓реАрдЧреЗрд╕реА рдХреЛрдбрдордзреНрдпреЗ рджрд┐рд╕реЗрд▓. рдкрд░рдВрддреБ рд╕реНрдЯреЕрдХ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрдордзреНрдпреЗ рдмрд░реЗрдЪрджрд╛ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ.
рдЯрд┐рдкреНрдкрдгреНрдпрд╛
  • рд▓реЛрдХрдкреНрд░рд┐рдп
  • рдирд╡реАрди
  • рдЬреБрдиреЗ
рдЯрд┐рдкреНрдкрдгреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рд╕рд╛рдИрди рдЗрди рдХреЗрд▓реЗрд▓реЗ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ
рдпрд╛ рдкрд╛рдирд╛рд╡рд░ рдЕрдЬреВрди рдХреЛрдгрддреНрдпрд╛рд╣реА рдЯрд┐рдкреНрдкрдгреНрдпрд╛ рдирд╛рд╣реАрдд