PHP рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд▓реЗрдХреНрд╢рди

рдкрд┐рдЫрд▓реЗ 5 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдореИрдВ PHP рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдЙрд╕рдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдЕрд▓рдЧ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрднреА рдирд╣реАрдВ рд░реБрдХрд╛ред

рдЗрд╕рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдХрдИ рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рдХрд╛рдлреА "рдХреБрдЯрд┐рд▓" рдХреЗ рдЕрдВрджрд░ рдХреА рдЬрд╛рддреА рд╣реИрдВред рдПрдХ рдкреНрд░рд╢реНрди рдЬреЛ рдореЗрд░реА рдирд╕реЛрдВ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдмрд░реНрдмрд╛рдж рдХрд░ рд░рд╣рд╛ рдерд╛, рд╡рд╣ рдбреЗрдЯрд╛ рдХреА рдПрдХ рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдореБрджреНрджрд╛ рдерд╛ред

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, PHP рдореЗрдВ рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдХрд╛рдлреА рд╡реНрдпрд╛рдкрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ, рдЬреЛ, рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред

рдЖрдкрдХреЛ рдХреНрдпрд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛?


рдирддреАрдЬрддрди, рдпрд╣ рдПрдХ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ (рд╕рдВрдЧреНрд░рд╣) рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдФрд░ рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ Rmk \ Collection рдкреИрдХреЗрдЬ рдкреЗрд╢ рдХрд░рддрд╛ рд╣реВрдВред

рдЗрдВрдЯрд░рдлреЗрд╕


рд╕рдВрдЧреНрд░рд╣ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдФрд░ рд╡рд░реНрдЧреАрдХрд░рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реИред

рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рдВрдЧреНрд░рд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред

рдорд╛рдирдЪрд┐рддреНрд░, рд╕реЗрдЯ, рд╕реВрдЪреА, рдХрддрд╛рд░, рдФрд░ Deque рдЗрдВрдЯрд░рдлреЗрд╕ рд╕рдВрдЧреНрд░рд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

Iterable рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рдВрдЧреНрд░рд╣ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕рднреА рд╕рдВрдЧреНрд░рд╣ рдЗрдВрдЯрд░рдлреЗрд╕ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред

рдЫрд╡рд┐

iterable
рдпрд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рдВрдЧреНрд░рд╣ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рд╕рдВрдЧреНрд░рд╣
рдпрд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрдИ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЧрдгрдиреАрдп рдФрд░ Iterable рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕рдВрдЧреНрд░рд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВред

рдирдХреНрд╢рд╛
рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдорд╛рдирдЪрд┐рддреНрд░ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рдореИрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдмреАрдЪ рд╕рд╛рд╣рдЪрд░реНрдп рд╕рдВрдмрдВрдз рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреБрдВрдЬреА рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рдореВрд▓реНрдп рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рдореИрдк рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдореИрдк рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА рдЪрд╛рдмрд┐рдпрд╛рдБ рд╣реИрдВред рдСрдмреНрдЬреЗрдХреНрдЯ рдореИрдк рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдореИрдк рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рди рд╣реИрдВред рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рдВрдЧреНрд░рд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред

рд╕реЗрдЯ
рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реИ рдЬрд╣рд╛рдБ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИрдВред рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ getIdentity () рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреА рдЬрд╛рддреА рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗрдЯ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рдВрдЧреНрд░рд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред

рдХрддрд╛рд░
рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХрддрд╛рд░ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рдХрддрд╛рд░ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реИ рдЬрдм рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдХрддрд╛рд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрддрд╛рд░ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рдХрддрд╛рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рдВрдЧреНрд░рд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рддрд╛ рд╣реИред

Deque
рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рджреНрд╡рд┐рджрд┐рд╢ рдХрддрд╛рд░ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реИред рджреНрд╡рд┐рджрд┐рд╢ рд╡рд╕реНрддреБ рдХрддрд╛рд░ рдХрддрд╛рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрддрд╛рд░ рд╡рд╕реНрддреБ рдХрддрд╛рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рджреНрд╡рд┐рджрд┐рд╢ рдХрддрд╛рд░ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рддрд░рдл рдХрддрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ред

SequentialList
рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реИред рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рдХреНрд░рдо рд╣реИ рдЬрд╣рд╛рдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдкреВрд░реНрдгрд╛рдВрдХ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рддрд╣рдд рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рд╕реВрдЪреА рдХреА рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ Iterable :: рдкреНрд░рддреНрдпреЗрдХ () рдХреЗ рд╕рдорд╛рди рдПрдХ рд░рд┐рд╡рд░реНрд╕ рдИрдЪ () рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд░рд┐рд╡рд░реНрд╕ рдИрдпрд░ () рд╡рд┐рдзрд┐ рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рд╕реВрдЪреА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреА рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реВрдЪреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рдВрдЧреНрд░рд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред

рдХрд╛рд░реНрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди



рдореИрдкреНрд╕ рдХреЛ HashMap рдФрд░ HashStore рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

HashMap рдФрд░ HashStore рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ AbstractCollection рдФрд░ AbstractMap рдЕрдореВрд░реНрдд рд╡рд░реНрдЧреЛрдВ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред

HashMap рдФрд░ HashStore рдирдХреНрд╢реЗ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рд╕рд╣рдпреЛрдЧреА рд▓рд┐рдВрдХ рдХреЗ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдпрд╣ рд╕рд╛рд╣рдЪрд░реНрдп рдирдореВрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рдХрд╛рд░реНрдб рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрдирдХреА рдЧрддрд┐ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рдорд╛рдирдЪрд┐рддреНрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдХрд╛рдо рдХреА рдЬрдЯрд┐рд▓рддрд╛ рд╣реЗ (1) рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕реНрдерд╛рдкрдирд╛ / рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рд╕рдордп рдХрд╛рд░реНрдб рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред

HashMap рдФрд░ HashStore рдХрд╛рд░реНрдб рдХреБрдВрдЬрд┐рдпреЛрдВ рдФрд░ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдорд╛рдирдХ Php рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд▓рд╛рдн рд╣реИред

HashMap рдХрд╛рд░реНрдб рдХреБрдВрдЬрд┐рдпрд╛рдБ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИрдВред HashMap рдорд╛рдирдЪрд┐рддреНрд░ рдорд╛рди рдЕрджреНрд╡рд┐рддреАрдп рдирд╣реАрдВ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рдХрдИ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХрд▓ рдорд╛рди рд╕рдВрдмрджреНрдз рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рд╣реИрд╢рд╕реНрдЯреЛрд░ рдорд╛рдирдЪрд┐рддреНрд░ рдХреА рдХреБрдВрдЬреА рдФрд░ рдореВрд▓реНрдп рдЕрджреНрд╡рд┐рддреАрдп рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рдЕрджреНрд╡рд┐рддреАрдп рд╕рдВрдмрджреНрдз рд╡рд╕реНрддреБрдУрдВ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдПрдХ HashStore рдХрд╛рд░реНрдб, HashMap рдХрд╛рд░реНрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдФрд╕рддрди 20% рддреЗрдЬреА рд╕реЗ рдЪрд▓рддрд╛ рд╣реИред рдпрд╣ рд▓рд╛рдн HashStore рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдХреЗ рдХрд╛рд░рдг рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХрдо рд╕рд╣рдпреЛрдЧреА рд▓рд┐рдВрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЫрд╡рд┐

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗрдЯ рдХрд░реЗрдВ


рдХрд┐рдЯреНрд╕ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдпреВрдирд┐рдХрд╕реНрдЯреЛрд░ рдХреЗ рдЕрджреНрд╡рд┐рддреАрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

UniqueStore рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯред рд╡рд╕реНрддреБрдУрдВ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдХреЛ рдЧреЗрдЯрдЗрдВрдбрд┐рдЯреА () рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛рддрд╛ рд╣реИред UniqueStore рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕рдорд╛рди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред

рдЕрджреНрд╡рд┐рддреАрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рднрдгреНрдбрд╛рд░ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ UniqueStore рдХреЛ рд╡рд╕реНрддреБрдУрдВ рдФрд░ рдЙрдирдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕рд╛рд╣рдЪрд░реНрдп рдирдореВрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рднрдВрдбрд╛рд░рдг рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЗрд╕рдХреА рдЧрддрд┐ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рдЕрджреНрд╡рд┐рддреАрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрдЯрд┐рд▓рддрд╛ рд╣реЗ (1) рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕реНрдерд╛рдкрдирд╛ / рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рд╕рдордп рднрдВрдбрд╛рд░рдг рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред

UniqueStore рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдЫрд╡рд┐

рд╕реВрдЪреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рд╕реВрдЪрд┐рдпрд╛рдБ ArrayList рдФрд░ LinkedList рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЬрд╛рддреА рд╣реИрдВред

ArrayList рдФрд░ LinkedList рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реВрдЪрд┐рдпрд╛рдБ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдЕрдиреБрдХреНрд░рдо рдХреНрд░рдо рдмрдирд╛рдП рд░рдЦрддреА рд╣реИрдВ рдЬрдм рдЙрдирдХреА рд╕рдВрд░рдЪрдирд╛ рдмрджрд▓рддреА рд╣реИред

ArrayList рдФрд░ LinkedList рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдЙрдирдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╕реВрдЪреА рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕рдмрд╕реЗ "рд╕рд╕реНрддреЗ" рдСрдкрд░реЗрд╢рди рд╣реИрдВ (рдЬреЛрдбрд╝реЗрдВ / рд╣рдЯрд╛рдПрдВ), рдФрд░ рд╕рдмрд╕реЗ "рдорд╣рдВрдЧреА" рд╕реВрдЪреА рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдСрдкрд░реЗрд╢рди (рдЬреЛрдбрд╝ / рд╣рдЯрд╛рдПрдВ) рд╣реИрдВред рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реВрдЪреА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрдЯрд┐рд▓рддрд╛ рд╣реЗ (рдПрди * (рдЧрдгрдирд╛ - рд╕реВрдЪрдХрд╛рдВрдХ)), рдЬрд╣рд╛рдВ рдПрди рдСрдкрд░реЗрд╢рди рд╣реИ; рдЧрд┐рдирддреА - рд╕реВрдЪреА рдХрд╛ рдЖрдХрд╛рд░; рд╕реВрдЪрдХрд╛рдВрдХ - рд╡рд╣ рд╕реВрдЪрдХрд╛рдВрдХ рдЬрд┐рд╕ рдкрд░ рдСрдкрд░реЗрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

ArrayList рдФрд░ LinkedList рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реВрдЪреА рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИред

рд▓рд┐рдВрдХреНрдбрд▓рд┐рд╕реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА, Deque рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рджреНрд╡рд┐рджрд┐рд╢ рдХреНрдпреВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИ рдФрд░ ArrayList рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИред

рдЫрд╡рд┐

рдХрддрд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рд▓рд┐рдВрдХреНрдбрд▓рд┐рд╕реНрдЯ рд▓рд┐рдВрдХреНрдб рд▓рд┐рд╕реНрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдиреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрддрд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рд╣реИрдВред

рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ


рдХрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг:
<?php namespace Rmk\Collection; use \UnexpectedValueException as UnexpectedValueException; use \InvalidArgumentException as InvalidArgumentException; use \stdClass as stdClass; include '../../bootstrap.php'; $map = new HashMap('stdClass', 'string'); $obj1 = new stdClass(); $obj2 = new stdClass(); $obj3 = new stdClass(); //    / . $map->set('k1', $obj1); $map->set('k2', $obj2); $map->set('k3', $obj3); try { $map->set(27, $obj1); } catch (InvalidArgumentException $exc) { echo '    .'; } try { $map->set('k4', new UnexpectedValueException); } catch (InvalidArgumentException $exc) { echo '    .'; } //  . $map->each(function($value, $key, $thisMap) { /** * @TODO:  . */ } ); //   . $map->remove($obj1); $map->remove($obj2); //   . $map->removeKey('k3'); if ($map->isEmpty()) { /** * @TODO:  ,   ? */ } //   . $array = $map->toArray(); // !     ,    //  . $objectMap = new HashMap('stdClass', 'stdClass'); try { $objectArray = $objectMap->toArray(); } catch (UnexpectedValueException $exc) { echo '     .'; } 


рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг:
 <?php namespace Rmk\Collection; use \UnexpectedValueException as UnexpectedValueException; use \InvalidArgumentException as InvalidArgumentException; use \stdClass as stdClass; include '../../bootstrap.php'; $set = new UniqueStore('stdClass'); $obj1 = new stdClass(); $obj2 = new stdClass(); $obj3 = new stdClass(); //    . $set->add($obj1); $set->add($obj2); $set->add($obj3); //       . $set->add($obj3); try { $set->add(new UnexpectedValueException); } catch (InvalidArgumentException $exc) { echo '    .'; } //  . $set->each(function($value, $thisSet) { /** * @TODO:  . */ } ); //    . $set->remove($obj1); $set->remove($obj2); $set->remove($obj3); //   . $array = $set->toArray(); 


рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг:
 <?php namespace Rmk\Collection; use \UnexpectedValueException as UnexpectedValueException; use \InvalidArgumentException as InvalidArgumentException; use \OutOfRangeException as OutOfRangeException; use \stdClass as stdClass; include '../../bootstrap.php'; $list = new LinkedList('stdClass'); $obj1 = new stdClass(); $obj2 = new stdClass(); $obj3 = new stdClass(); //    . $list->add(0, $obj1); $list->add(1, $obj2); $list->add(2, $obj3); try { $list->add(4, $obj1); } catch (OutOfRangeException $exc) { echo '     ,   .'; } //  . $list->each(function($value, $index, $thisList) { /** * @TODO:  . */ } ); //     . $list->reverseEach(function($value, $index, $thisList) { /** * @TODO:  . */ } ); //   . $list->remove($obj1); $list->removeIndex(0); $list->removeFirst(); if ($list->isEmpty()) { echo ' .'; } 


рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди




рд╕реНрд░реЛрдд рдХреЛрдб


https://github.com/rmk135/Rmk-Framework

Source: https://habr.com/ru/post/In144182/


All Articles