JDK рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдФрд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ

[ рдЕрдВрдЧреНрд░реЗрдЬреА рд╕рдВрд╕реНрдХрд░рдг ]
рд╕рдордп-рд╕рдордп рдкрд░ рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдХрд┐ рдХреНрдпрд╛ jdk рдореЗрдВ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рдорд╛рдирдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рд╡рд┐рдЪрд╛рд░ рдПрдХ рд╕рдорд╛рди рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛ рдерд╛ред рдмреНрдпрд╛рдЬ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрдИ рдЬреНрдЮрд╛рдд рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ / рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдХрд╛рд░рдг рдереЗред
рд╕рдореАрдХреНрд╖рд╛ рдХрд╛ рдкреНрд░рд╛рд░реВрдк - рдХреЗрд╡рд▓ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЧреБрдг рдФрд░ рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ jdk, рд╡рд┐рд╡рд░рдг рдФрд░ рд╡рд┐рд╡рд░рдг - рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП javadoc рдпрд╛ рдЖрд╕рд╛рди рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред
рдореИрдВ рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рдФрд░ рд╕рд╛рдореВрд╣рд┐рдХ рдорди рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ рдЕрдЧрд░ рдореИрдВ рдХреБрдЫ рдпрд╛рдж рдХрд░рддрд╛ рд╣реВрдВред
рдкрд░реНрдпрд╛рдкреНрдд рдкрд░рд┐рдЪрдп, рддреЛ рдЪрд▓рд┐рдП рдирдЬрд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдХрд┐ рд╡рд░реНрддрдорд╛рди jdk 7 рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рдХреНрдпреЛрдВред

рд╕рдВрд░рдЪрдирд╛


рдЕрдиреЗрдХрддрд╛

Jdk рдХрд╛ рдПрдХ рдкреБрд░рд╛рдирд╛ рд╕реНрдЯреИрдХ ( Stack ) рд╣реИ, рдЬреЛ рдЬрд╛рд╡рд╛ рдХреА рд░рд┐рд╣рд╛рдИ рдХреЗ рдмрд╛рдж рд╕реЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд╣реИ рдФрд░ рдЕрдм рдЗрд╕рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдпрд╣ рдЬрдЯрд┐рд▓ рдФрд░ рдЕрдЬреАрдм рд╣реИ: рдпрд╣ рд╡реЗрдХреНрдЯрд░ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рд╕реНрддрд╛рд░ рдпреЛрдЧреНрдп рд╕рд░рдгреА рдФрд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдЯреИрдХ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдм рдХреНрдпреЛрдВ рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ? рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ (рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ: 1 , 2 ), рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рддреНрд░реБрдЯрд┐ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рдЬреЛ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд╕рдорд╛рди рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, javadoc рдЦреБрдж Deque рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИред

Deque рдПрдХ рджреЛ-рддрд░рдлрд╛ рдХрддрд╛рд░ (OIF (1) рдХреЗ рд▓рд┐рдП LIFO + FIFO) рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (рдПрдкреАрдЖрдИ) рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрдЯреИрдХ рдСрдкрд░реЗрд╢рди (рдкреБрд╢, рдкреЙрдк, рдЖрдЗрд╕ рдЦрд╛рд▓реА, рдЖрдХрд╛рд░) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред Jdk рдореЗрдВ рдмрд╣реБрдд рдкрд╣рд▓реЗ рд╕реЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ (1.6+)ред
рдмреЗрд╢рдХ, рдпрд╣ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ рдпрджрд┐ рдпреЗ рд╕реНрдЯреИрдХ рдСрдкрд░реЗрд╢рди рд╕реНрдЯреИрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдереЗ, рдФрд░ рдбреАрдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рд╕реНрдЯреИрдХ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдерд╛, рдФрд░ рдмреИрдХрд╡рд░реНрдб рд╕рдВрдЧрддрддрд╛ "рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рд╣рд░ рдЪреАрдЬ" рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдбрд┐рдЬрд╛рдЗрди рдХрд╛ рддреНрдпрд╛рдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
Deque рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди ArrayDeque рдФрд░ LinkedList рд╣реИрдВ , рдЬреЛ рд╕рдВрдпреЛрдЬрди рдореЗрдВ, рд╕рд╛рдорд╛рдиреНрдп рдХрддрд╛рд░ рдХреЛ рднреА рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдмрд╛рдж рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

рдХрддрд╛рд░реЛрдВ

рдЕрдЧрд▓реЗ рдХреНрд░рдо рдореЗрдВ рд╣рдо рдХрддрд╛рд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рдбрд┐рдЬрд╛рдЗрди рд╕рднреНрдп рд╣реИред
рдХрддрд╛рд░ - FIFO рдХрддрд╛рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (рдПрдкреАрдЖрдИ), рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдУ (1) рдореЗрдВ рдЕрдВрдд рд╕реЗ рд╣рдЯрд╛рдПрдВред

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

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

рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреА рдХрддрд╛рд░реЗрдВ рдорд▓реНрдЯреАрдереНрд░реЗрдбреЗрдб рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдмреНрд▓реЙрдХрд┐рдВрдЧ рдХреНрдпреВ, рдЯреНрд░рд╛рдВрд╕рдХреНрдпреВрдХреНрдпреВ, рдХреЙрдирдХреНрдпреВрд░рд▓ рд▓рд┐рдВрдХ рдХреНрдпреВ рдФрд░ рдХреЙрдиреНрдЯреНрд░реЗрдХреНрдЯрд▓рд┐рдВрдХрдбреЗрдХред

BlockingQueue рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (ArrayBlockingQueue, LinkedBlockingQueue, PriorityBlockingQueue) рдЙрдирдХреЗ рдореВрд▓ рдХреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рд▓рдЧрднрдЧ рд╣рд░ рдСрдкрд░реЗрд╢рди рдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ (рдЕрд╡рд░реБрджреНрдз) рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ DelayQueue рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ - рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝, рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдпреЛрд░рд┐рдЯреА рдХреНрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЬрдмрдХрд┐ SynchronousQueue, TransferQueue (LinkedTransferQueue), ConcurrentLinkedQueue, ConcurrentLinkedDeque рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ: рд╡реЗ рдХреИрд╕ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рдХрддрд╛рд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕рд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рд╕реНрд░реЛрдд рдореЗрдВ рд╣реИред
рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛рдлреА рд╡реНрдпрд╛рдкрдХ рдФрд░ рдирдИ рд╕рд╛рдордЧреНрд░реА рд╣реИрдВ, рдЕрднреА рддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд╛рдирдХреАрдХреГрдд рдФрд░ рд╕рдВрд░рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдЗрд╕ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИ рдФрд░ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИред

рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХрддрд╛рд░ (рдвреЗрд░)

рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, 1.5 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдирд╛ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ jdk рдореЗрдВ рдвреЗрд░ рдХрд╛ рдПрдХ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдпрд╣ рдЕрдЪреНрдЫрд╛ рдкреБрд░рд╛рдирд╛ рдЯрд╛рдЗрдорд░ рд╣реИ, рдЯрд╛рд╕реНрдХрдХреНрдпреВ рдХреЗ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдХреНрд▓рд╛рд╕рд┐рдХ (рд╢реАрд░реНрд╖ рдкрд░ - рдПрдХ рдиреНрдпреВрдирддрдо рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдп)ред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдПрдХ рдмрдВрдж рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рдФрд░ рдЯрд╛рдЗрдорд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕реВрдЪрд┐рдпреЛрдВ

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

рдФрд░ рджреВрд╕рд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦрд┐рдд рд▓рд┐рдВрдХреНрдбрд▓рд┐рд╕реНрдЯ рд╣реИ, рдЬреЛ рдПрдХ рджреЛрд╣рд░реА рд░реВрдк рд╕реЗ рдЬреБрдбрд╝реА рдЕрдиреБрдХреНрд░рдорд┐рдХ рдПрдХреНрд╕реЗрд╕ рд╕реВрдЪреА рд╣реИ, рдЖрдХрд╛рд░ рдХреЗрд╡рд▓ рдореБрдлреНрдд jvm рдореЗрдореЛрд░реА рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реИред рдпрджреНрдпрдкрд┐ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЕрднрд┐рдЧрдо рд╡рд┐рдзрд┐ (рд╕реВрдЪрдХрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛) рднреА рдореМрдЬреВрдж рд╣реИрдВ - рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡реЗ рдУ (рдПрди) рдореЗрдВ рдпрд╣рд╛рдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред

рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдЬрд╛рд╡рд╛ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдХреЛрдИ рд╕рд░рд▓ рдПрдХрд▓-рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдВрднрд╡рддрдГ (2 рдмрд╛рд░ рдХрдо рд▓рд┐рдВрдХ рдУрд╡рд░рд╣реЗрдб), рд╕рд╛рде рд╣реА рд╕рд╛рде рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрдЯреИрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, CopyOnWriteArrayList (рдЪреЗрдВрдЬ рдСрдкрд░реЗрд╢рди рдУ (рдПрди)), рд░реИрдкрд░ (рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬреНрдб рд▓рд┐рд╕реНрдЯ), рдФрд░ рдПрдХ рдкреБрд░рд╛рдирд╛ рд╡реЗрдХреНрдЯрд░ рднреА рд╣реИред

рдЪрд░рд┐рддреНрд░ рдЯреЗрдмрд▓

рдПрдХ рдмрд╛рдЗрдирд░реА рдЯреНрд░реА рдФрд░ рд╣реИрд╢ рдЯреЗрдмрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред

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

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

рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ jdk рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдЦреБрд▓реЗ рдкрддреЗ (рд░реИрдЦрд┐рдХ рдЬрд╛рдВрдЪ) рдХреЗ рд╕рд╛рде рд╣реИрдВ ред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ IdentityHashMap рд╣реИ, рдЬреЛ рдмреЗрд╣рддрд░ рдбреЗрдЯрд╛ рдХреИрд╢рд┐рдВрдЧ (javadoc: "рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд┐рд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрдбрд╝реА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдЗрд▓рд╛рдХреЗ") рдХреЗ рд▓рд┐рдП рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдПрдХ рд╣реА рд╕рд░рдгреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрдиреЗ рдкрд░ рд╢рд╛рд╕реНрддреНрд░реАрдп рд░реИрдЦрд┐рдХ рдЬрд╛рдВрдЪ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рджреВрд╕рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ: рдпрд╣ рдХреЗрд╡рд▓ рдереНрд░реЗрдбрд▓реЛрдХ рддрддреНрд╡реЛрдВ (рдЖрдВрддрд░рд┐рдХ рдЫрд┐рдкреЗ рд╣реБрдП рдХреНрд▓рд╛рд╕рд┐рдХ рдереНрд░реЗрдбрд▓реЙрдХ рдореИрдк) рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред

Multithreaded рд╕рдВрд╕реНрдХрд░рдг: ConcurrentHashMap, SyncMap рдЖрд╡рд░рдг, рд╣реИрд╢рдЯреЗрдмрд▓ рдФрд░ ConcurrentSkipListMapред рдПрдХ рд░реИрдкрд░ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдирд┐рдпрдорд┐рдд рд╣рд╛рд╢рдк рдХрд╛ рдЕрд╡рд░реБрджреНрдз рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдПрдХ рд╣реИрд╢рдЯреЗрдмрд▓ рдПрдХ рд╣реА рд╣реИ, рд╕рдорд╡рд░реНрддреА рд╣рд╛рд╢рдк рдПрдХ рд▓реЙрдХ-рд╕реНрдЯреНрд░рд┐рдкрд┐рдВрдЧ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЛ рдХрд╛рдЯрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдпрд╣ JCiP рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ, рдпрд╣рд╛рдВ рдПрдХ рдЕрдВрд╢ рд╣реИ )ред
ConcurrentSkipListMap рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╕рдорд╛рди рдирд╛рдо рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдПрдХ рдЧреИрд░-рдЕрд╡рд░реЛрдзрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ (рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рджреЗрдЦреЗрдВ)ред

рд╕реЗрдЯ рдХреЛ рд╣реИрд╢ рдЯреЗрдмрд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕реЗрдЯ рд╕реЗрдЯ (рдЬреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ), рдЗрд╕рд▓рд┐рдП, рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рдХреБрдЫ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рд╡рд╣ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИред

рдЧрд┐рдирддрд╛

рдЧреНрд░рд╛рдлрд╝ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ jdk рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ

рдкрдВрдХреНрддрд┐рдпрд╛рдВ

рдорд╛рдирдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреВрдирд┐рдХреЛрдб рд╡рд░реНрдгреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 1.7_17 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рди рдЕрдм O (n) рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдЧрдИ рд╣реИред

рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдУ (рдПрди * рдПрдо) рджреЗрдиреЗ рд╡рд╛рд▓рд╛ рд╕рд░рд▓ рдЦреЛрдЬ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рди рдХрд┐ рдПрдХ рдкрд░рд┐рдорд┐рдд рд░рд╛рдЬреНрдп рдорд╢реАрди (рдиреВрде-рдореЙрд░рд┐рд╕-рдкреНрд░реИрдЯ рдФрд░ рдЕрдиреНрдп) рдкрд░ рдирд┐рд░реНрдорд┐рдд рдХреБрдЫ рдХреБрд╢рд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо ред
рдХрдИ рдХрд╛рд░рдг рд╣реИрдВ: рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, UTF рд╡рд░реНрдгреЛрдВ (~ 65K) рдореЗрдВ рд╡рд░реНрдгрдорд╛рд▓рд╛ рднреА рдмрдбрд╝реА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд░рд╛рдЬреНрдп рдорд╢реАрди рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдУрд╡рд░рд╣реЗрдб рд╣реИ, рдЬрдмрдХрд┐ рдЦреЛрдЬ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдЬрдЧрд╣ рд╣реИ (рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдФрд╕рдд рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рдкреНрд░рджрд░реНрд╢рди - рдЗрд╕рдореЗрдВ, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдЦреЛрдЬ рдЕрдиреНрдп рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╕реЗ рдмрд╣реБрдд рдХрдо рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдЫрдБрдЯрд╛рдИ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдмрд╛рддред рдЧрд┐рдирддреА (рдПрд▓рдПрд╕рдбреА, рдПрдордПрд╕рдбреА, рдЖрджрд┐) рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЗрдиреЛрдВ рдХреА рдХреБрд╢рд▓ рдЫрдВрдЯрд╛рдИ рдХреА рдЬрд╛рддреА рд╣реИ , рд▓реЗрдХрд┐рди jdk рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдУ (рдПрдо * рдПрди * рд▓реЙрдЧ рдПрди) рджреЗрддреЗ рд╣реБрдП рдпрджрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓рд╛рдЗрдиреЗрдВ рдмрд╣реБрдд рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИрдВ (рдПрдо рдФрд╕рдд рд▓рд╛рдЗрди рд▓рдВрдмрд╛рдИ рд╣реИ)ред
рдХрд╛рд░рдг рд╕рдорд╛рди рд╣реИ: рдЧрд┐рдирддреА рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдпреВрдЯреАрдПрдл рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╣рд╛рдпрдХ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдФрд╕рдд рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдкрд░ рдЕрдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред

рдПрд▓реНрдЧреЛрд░рд┐рджрдо


рдЫрдВрдЯрд╛рдИ

рд╕реЙрд░реНрдЯрд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ jdk7 рдореЗрдВ рдХрдИ рдмрджрд▓рд╛рд╡ рд╣реБрдП рд╣реИрдВ, рд╡рд┐рд╖рдп рдкрд░ рдмрд╛рд░-рдмрд╛рд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ, рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рд▓реЗрдЦ рд╣реИрдВ, рдореИрдВ рдЗрд╕ рд╕рдореАрдХреНрд╖рд╛ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ jdk рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реВрдЪреА: рдЯрд┐рдорд╕рд░реНрдЯ - рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЫрд╛рдВрдЯрдирд╛ , рд╡рд┐рд▓рдп рдХрд░рдирд╛ - рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рднреА, рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг (рд╕рд┐рд╕реНрдЯрдо рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдХреНрд╖рдо), рдЖрджрд┐рдо рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдЯ / рд╡рд░реНрдг рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рджреЛрд╣рд░реЗ рдкрд┐рд╡рдЯ рддреНрд╡рд░рд┐рдд рд╕реЙрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ ред рдЧрд┐рдирддреА рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЫреЛрдЯреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдВрдЧреНрд░рд╣реЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ред рд╕рдВрдЧреНрд░рд╣ (рд╕реВрдЪреА ...) рдЕрднреА рднреА рдПрдХ рд╕рд░рдгреА рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЫрдБрдЯрд╛рдИ рдФрд░ рдлрд┐рд░ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдУрд╡рд░рд╣реЗрдб рдХреЗ рдмрд┐рдирд╛, рдпрд╣ рдорд╛рдирдХ рддрд░реАрдХреЛрдВ рд╕реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдВрднрд╡рдд: рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рдЗрди-рдкреНрд▓реЗрд╕ рдЫрд╛рдВрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЪреЛрдЯ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рдПрдЧрд╛ред

рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдКрдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЦреЛрдЬ

рдкрд╛рд░рдВрдкрд░рд┐рдХ рдмрд╛рдЗрдирд░реА рдЦреЛрдЬ рдкреНрд░рд╛рдЗрдорд┐рдЯрд┐рд╡реНрд╕ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рднреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЕрднрд┐рдЧрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЫрдВрдЯрд╛рдИ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдПрдХ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдЦреЛрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рднреА рдХрдо рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдУ (рд▓реЙрдЧ рдПрди) рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рд╣реИред

рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐

рдкрд╛рд░рдВрдкрд░рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрдХ рдЧреИрд░-рдирд┐рдпрддрд╛рддреНрдордХ рдкрд░рд┐рдорд┐рдд рд░рд╛рдЬреНрдп рдорд╢реАрди ( рдПрдирдПрдлрдП ) рдФрд░ рдмреИрдХрдЯреНрд░реИрдХрд┐рдВрдЧ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ ред рдпрд╛рдиреА рдЕрдз: рдкрддрди рдореВрд▓реНрдпреЛрдВ рдкрд░ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдШрд╛рддреАрдп рдЬрдЯрд┐рд▓рддрд╛ рдУ (рдПрдо ^ рдПрди), рдЙрджрд╛рд╣рд░рдг:

"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa".matches("(a|aa)*b") 


рддрдерд╛рдХрдерд┐рдд "рдСрд░реНрдбрд░ рдХрд┐рдП рдЧрдП рд╡рд┐рдХрд▓реНрдк" (рдХреНрд░рдорд┐рдХ рд╡рд┐рдХрд▓реНрдк?) - рдпрд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╕рдмрд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ (рд▓рдВрдмреЗ), рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрдЬрд╛рдп рдХрдИ рд╕реЗ рдкрд╣рд▓рд╛ рдореИрдЪ рдЦреЛрдЬрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдЦреЛрдЬ рдмрдВрдж рд╣реЛ рдЬрд╛рддреА рд╣реИред

рд╣реИрд╢ рдлрдВрдХреНрд╢рдВрд╕, рдЪреЗрдХрд╕рдо

Jdk рдореЗрдВ рд╣реИрд╢рдХреЛрдб рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдЫрд╣ рдкреВрд░реНрдгрд╛рдВрдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИрдВ, рдкрд╛рд░реНрдХ-рдорд┐рд▓рд░_рд░реИрдВрдбрдо_number_generator рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣реИрдмрд░ рдкрд░ рдПрдХ рд╣рд╛рд▓рд┐рдпрд╛ рд▓реЗрдЦ ред

рдорд╛рдирдХ рдЙрджреНрдпреЛрдЧ-рдорд╛рдирдХ рд╣реИрд╢рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо (SHA- *, MD5 рдФрд░ рд╡рд┐рд╡рд┐рдзрддрд╛рдПрдВ) рднреА рд╣реИрдВ - MessageDigest

рдЪреЗрдХрд╕рдореЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдбрд▓рд░ -32 ( рдЬреЗрд╡рд╛рдбреЙрдХ ) рдФрд░ рд╕реАрдЖрд░рд╕реА 32 ( рдЬреЗрд╡рд╛рдбреЙрдХ ) рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрднреА рднреА рд╣реИрдВ

рджрдмрд╛рд╡

Jdk рдореЗрдВ рдорд╛рдирдХ рдбрд┐рдлреНрд▓реЗрдЯ рдХрдореНрдкреНрд░реЗрд╢рди рдЕрд▓реНрдЧреЛрд░рд┐рдердо ( рдбреАрдлреНрд▓реИрдЯрд░ ) рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬрд┐рдк / gzip рднреА рд╣реИред рдпрд╣ рд╕рдм java.util.zip рдкреИрдХреЗрдЬ рдореЗрдВ

рдирд┐рд╖реНрдХрд░реНрд╖


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╛рд╡рд╛ рдореЗрдВ рд╢рд╛рд╕реНрддреНрд░реАрдп рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рд▓рдЧрднрдЧ рд╣рд░ рдПрдХ рдХреЗ рд▓рд┐рдП рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред
рдХреНрдпрд╛ рдЧрд╛рдпрдм рд╣реИ рдпрд╣ рдПрдХ рдЦреБрд▓рд╛ рдкреНрд░рд╢реНрди рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдИ рдпрд╣ рддрд░реНрдХ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ jdk рдореЗрдВ рдХреБрдЫ Union-Find рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдпреБрдЧ рдореЗрдВ рдЧреНрд░рд╛рдл рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдХрдореА рдРрд╕реА рднрд╛рд╖рд╛ рдореЗрдВ рд╣реИ рдЬреЛ рд╕рдмрд╕реЗ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рддреА рд╣реИ - рдмрдЧ рдФрд░ рд╕рд╛рдЗрдХрд┐рд▓ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реИрдВред

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


All Articles