рдЬрд╛рд╡рд╛ рдкреНрд░реИрдХреНрдЯрд┐рдХрд▓ рдЯрд╛рд╕реНрдХ - рдкрд╛рдареНрдпрдХреНрд░рдо рдФрд░ рдЕрдиреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП
рдХреБрдЫ рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рд╢рдмреНрдж
рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рд╕реЗ, рдореИрдВ рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕рд┐рдЦрд╛ рд░рд╣рд╛ рд╣реВрдБред рд╕рдордп рдХреЗ рд╕рд╛рде, рдпрд╣ рдмрджрд▓ рдЧрдпрд╛ - рдХрднреА-рдХрднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдпрд╛ рдмрд╛рд╣рд░ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛, рд╡рд┐рд╖рдпреЛрдВ рдХрд╛ рдХреНрд░рдо рдмрджрд▓ рдЧрдпрд╛, рдХрдХреНрд╖рд╛рдУрдВ рдХреА рдПрдХ рдпреЛрдЬрдирд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЦреБрдж рдмрджрд▓ рдЧрдпрд╛, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдпрд╣реА рд╣реИ, рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд╛рдареНрдпрдХреНрд░рдо рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реА рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛рд░реНрдп рд╣реИред рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░реА рдкреНрд░рддреНрдпреЗрдХ рдХрдХреНрд╖рд╛ рдореЗрдВ рджреЛ рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдПрдХ рд╡реНрдпрд╛рдЦреНрдпрд╛рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реВрдВ - рдореИрдВ рдЖрдкрдХреЛ рдХреБрдЫ рдирдП рд╡рд┐рд╖рдп (рдХрдХреНрд╖рд╛рдПрдВ, рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░, рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди, рдФрд░ рдЗрд╕реА рддрд░рд╣) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдб рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдмрддрд╛рддрд╛ рд╣реВрдВред рджреВрд╕рд░рд╛ рднрд╛рдЧ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХрдХреНрд╖рд╛ рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рд╣реИ, рдпрд╛рдиреА рдХрд┐рд╕реА рддрд░рд╣ рдХреБрдЫ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рдирд╛ред рдХрдХреНрд╖рд╛ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдШрд░ рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реЗ рдЕрд▓рдЧ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрдХреНрд╖рд╛ рдореЗрдВ рдЖрдк рдПрдХ рдкреНрд░рд╢реНрди рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЛрдб рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЛрдб рдХрд╛ рддреНрд╡рд░рд┐рдд рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реБрдзрд╛рд░ рдкрд░ рдЯрд┐рдкреНрдкрдгреА, рд▓рд┐рдЦрд┐рдд рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмрд╣реБрдд рдкрд╣рд▓реЗ рдкрд╛рдареЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЦреЛрдЬрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдерд╛ред рд▓реВрдкреНрд╕, рд╕рд╢рд░реНрдд рдмрдпрд╛рдиреЛрдВ рдФрд░ рдУрдУрдкреА рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд░реНрдЧ "рдбреЙрдЧ" рдпрд╛ рдХреНрд▓рд╛рд╕ "рд╡реЗрдХреНрдЯрд░" рд▓рд┐рдЦреЗрдВ)ред
рд▓реЗрдЯрдХреЛрдб рдЬреИрд╕реА рд╕реЗрд╡рд╛рдПрдВ рднреА рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рддреБрд░рдВрдд рдСрдирд▓рд╛рдЗрди рд╣рд▓ рдХрд░рдиреЗ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред рд▓реЗрдХрд┐рди рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рдПрдХ рдкрд╛рда рдореЗрдВ рдХреНрдпрд╛ рдХрд╛рд░реНрдп рджрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдереЗ? рдзрд╛рд░рд╛рдУрдВ? рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдРрд╕реЗ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдпрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛, рдФрд░ рдпрд╣ рд▓реЗрдЦ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ (рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ)ред
рдмреЗрд╢рдХ, рд╕рднреА рдХрд╛рд░реНрдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╣реАрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдП рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд▓реЗрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╢рд┐рдХреНрд╖рдХреЛрдВ (рдЬрд╛рд╡рд╛ рдХреЗ рд╕рдорд╛рди рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдп рдХрд░реЗрдЧрд╛) рдпрд╛ рдирд┐рдЬреА рддреМрд░ рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕рд┐рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╣реИред рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдкрдХреА рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ "рдЖрдЙрдЯ рдСрдл рдж рдмреЙрдХреНрд╕" рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрд╛рд╡рд╛ рд╕реАрдЦрдиреЗ рд╡рд╛рд▓реЗ рднреА рдЙрдиреНрд╣реЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдРрд╕реЗ рдлреИрд╕рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдФрд░ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рджрд╢рдХреЛрдВ рд╕реЗ рд╣рд░ рдХрд┐рд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рд╕рд░рд▓ рдХрд╛рд░реНрдп, рдореИрдВ рднреА рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реВрдВред рд╢рд╛рдпрдж, рдЕрдореВрд░реНрдд рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рддреБрд░рдВрдд рд╢реБрд░реВ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдХрд┐рд╕реА рднреА рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!
рдХрд╛рд░реНрдп рд╕реВрдЪреА
рдореВрд▓ рдмрд╛рддреЗрдВ
1.0ред рдЕрдзрд┐рдХрддрдо, рдиреНрдпреВрдирддрдо рдФрд░ рдФрд╕рддрез.рез рдЕрд░реНрд░реЗ рдЫрд╛рдБрдЯреЗ1.2 рдкреНрд░рд╛рдЗрдорд┐рдВрдЧ рдвреВрдБрдврдирд╛1.3 рдПрдХ рд╕рд░рдгреА рд╕реЗ рдирд┐рдХрд╛рд▓рдирд╛OOP рдореВрд▓ рдмрд╛рддреЗрдВ
2.0 рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдЧ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдирд╛ рдФрд░ рдмрдирд╛рдирд╛2.1 рдПрдХ рднрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рддрддреНрд╡ рдХреА рдЙрддреНрдкрддреНрддрд┐реи.реи рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреАрдкреНрд░рддреНрдпрд╛рд╡рд░реНрддрди
3.0 рдмрд╛рдЗрдирд░реА рд╕рд░реНрдЪ3.1 рд╕рдореАрдХрд░рдг рдХреА рдЬрдбрд╝ рдЬреНрдЮрд╛рдд рдХреАрдЬрд┐рдП3.2 рдмрд╛рдЗрдирд░реА рд╕рд░реНрдЪ рдЯреНрд░реАрд╡рд┐рд░рд╛рд╕рдд
4.0 рддреАрди рдЖрдпрд╛рдореА рдЖрдХреГрддрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рд▓рд╛рдЧреВ рдХрд░реЗрдВрек.рез рдПрдХ рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдЬреЛ рддреАрди рдЖрдпрд╛рдореА рдЖрдВрдХрдбрд╝реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ - реи4.2 рддреАрди рдЖрдпрд╛рдореА рдЖрдХреГрддрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ - 34.3 рдПрдХ рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдЬреЛ рддреАрди рдЖрдпрд╛рдореА рдЖрдХреГрддрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ - 4рдкрдВрдХреНрддрд┐рдпрд╛рдВ
5.0 рдкрддреНрд░реЛрдВ рдХреА рдЖрд╡реГрддреНрддрд┐ рд╢рдмреНрджрдХреЛрд╢рд╕рд╛рд░ рд╡рд░реНрдЧ рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕
6.0ред рддрд╛рдкрдорд╛рди рдХрдирд╡рд░реНрдЯрд░6.1ред рдкреВрд░реНрд╡рд╡рдд рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд╕реНрдЯреНрд░рд┐рдВрдЧрд░6.2ред рд░рд╛рдЬреНрдп рдирд┐рд░реНрдорд╛рдг рд╕реНрдЯреНрд░рд┐рдВрдЧрд░ (рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдкреИрдЯрд░реНрди)6.4ред рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рднрд░рдирд╛рд╕рдВрдЧреНрд░рд╣
7.0ред рдлреНрд░реАрдХреНрд╡реЗрдВрд╕реА рдбрд┐рдХреНрд╢рдирд░реА рдСрдл рд╡рд░реНрдбреНрд╕7.1ред рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдЧреНрд░рд╣7.2ред ArrayList рдФрд░ LinkedList7.3ред рдПрдХ рд╕рд░рдгреА рдкрд░ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрдд рд▓рд┐рдЦреЗрдВ7.4ред рджреНрд╡рд┐-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдкрд░ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрдд рд▓рд┐рдЦреЗрдВ7.5ред рдПрдХ рдФрд░ рднреА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐7.6ред рджреЛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдкрд░ Iterator7.7ред рдЧрд┐рдирддреА рдХреЗ рддрддреНрд╡7.8ред рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рдЪрд╛рдмрд┐рдпрд╛рдБ рдФрд░ рдореВрд▓реНрдп рдмрджрд▓реЗрдВрдмрд╣реБ рд╕реВрддреНрд░рдг
8.0ред рд░рд╛рдЬреНрдпреЛрдВ8.1ред рдзрд╛рдЧрд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди8.2ред рдЙрдкрднреЛрдХреНрддрд╛ рдирд┐рд░реНрдорд╛рддрд╛рдПрдиреЛрдЯреЗрд╢рди
9.0ред рдХрд╕реНрдЯрдо рдПрдиреЛрдЯреЗрд╢рди - рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЙрдкрдпреЛрдЧ10.0ред рд╕рдбрд╝рдХ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛10.1ред рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдЦреЛрдЬред рдХрдВрд╕реЛрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ10.2ред рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдп - HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛10.3ред рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдп - рдореМрд╕рдо рдЯреЗрд▓реАрдЧреНрд░рд╛рдо-рдмреЙрдЯ10.4ред рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдп - рд▓рд┐рдЦрд╛рд╡рдЯ рдХреА рдорд╛рдиреНрдпрддрд╛рдореВрд▓ рдмрд╛рддреЗрдВ
1.0ред рдЕрдзрд┐рдХрддрдо, рдиреНрдпреВрдирддрдо рдФрд░ рдФрд╕рдд
рдЙрджреНрджреЗрд╢реНрдп:рд╕рд░рдгреА рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рд╕реЗ рднрд░реЗрдВ рдФрд░ рдЕрдзрд┐рдХрддрдо, рдиреНрдпреВрдирддрдо рдФрд░ рдФрд╕рдд рдореВрд▓реНрдп рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВред
рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
Math.random () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреЛ рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рдПрдХ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ [0, 1]ред
рд╕рдорд╛рдзрд╛рди:public static void main(String[] args) { int n = 100; double[] array = new double[n]; for (int i = 0; i < array.length; i++) { array[i] = Math.random(); } double max = array[0];
1.1ред рдХрд┐рд╕реА рд╕рд░рдгреА рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдмрд▓ рд╕реЙрд░реНрдЯ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ
рд╕рдорд╛рдзрд╛рди: for (int i = 0; i < array.length; i++) { for (int j = 0; j < array.length - i - 1; j++) { if (array[j] > array[j + 1]) { double temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } for (int i = 0; i < array.length; i++) { System.out.println(array[i]); }
1.2ред рдЕрднрд╛рдЬреНрдп рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВ
рдЙрджреНрджреЗрд╢реНрдп:рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦреЗрдВ рдЬреЛ рдкреНрд░рд╛рдЗрдо рдирдВрдмрд░ рдХреЛ рдХрдВрд╕реЛрд▓ рдореЗрдВ [2, 100] рдХреЗ рдмреАрдЪ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
% рдСрдкрд░реЗрдЯрд░ (рд╡рд┐рднрд╛рдЬрди рдХреЗ рд╢реЗрд╖) рдФрд░ рдЫреЛрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╕рдорд╛рдзрд╛рди: for(int i = 2; i <= 100; i ++){ boolean isPrime = true; for(int j = 2; j < i; j++){ if(i % j == 0){ isPrime = false; break; } } if(isPrime){ System.out.println(i); } }
рдпрд╛
рд▓реЗрдмрд▓ рдЫреЛрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:
out_for: for (int i = 2; i <= 100; i++) { for (int j = 2; j < i; j++) { if (i % j == 0) { continue out_for; } } System.out.println(i); }
1.3ред рд╕рд░рдгреА рд╕реЗ рд╣рдЯрд╛рдПрдВ
рдЙрджреНрджреЗрд╢реНрдп:рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рдПрдХ рд╕рд░рдгреА рдФрд░ рдПрдХ рдЕрдиреНрдп рдкреВрд░реНрдгрд╛рдВрдХ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдПред рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рдХреА рд╕рднреА рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рд░рдгреА рд╕реЗ рдирд┐рдХрд╛рд▓реЗрдВ (рдХреЛрдИ рдЕрдВрддрд░рд╛рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред
рд╕рдорд╛рдзрд╛рди: public static void main(String[] args) { int test_array[] = {0,1,2,2,3,0,4,2}; System.out.println(Arrays.toString(removeElement(test_array, 3))); } public static int[] removeElement(int[] nums, int val) { int offset = 0; for(int i = 0; i< nums.length; i++){ if(nums[i] == val){ offset++; } else{ nums[i - offset] = nums[i]; } }
рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╕рд░рдгреА рдХреА рдкреВрдВрдЫ рдХрд╛рдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдорд╛рдирдХ рд╡рд┐рдзрд┐ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧреА:
public static int[] removeElement(int[] nums, int val) { int offset = 0; for(int i = 0; i< nums.length; i++){ if(nums[i] == val){ offset++; } else{ nums[i - offset] = nums[i]; } } int[] newArray = new int[nums.length - offset]; for(int i = 0; i < newArray.length; i++){ newArray[i] = nums[i]; } return newArray; }
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкрд╣рд▓реЗ рд╡рд╛рдВрдЫрд┐рдд рд▓рдВрдмрд╛рдИ рдХрд╛ рдПрдХ рд╕рд░рдгреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЙрд╕реЗ рднрд░ рд╕рдХрддреЗ рд╣реИрдВ:
public static int[] removeElement(int[] nums, int val) { int count = 0;
2.0ред рдПрдХ рд╕рджрд┐рд╢ рд╡рд░реНрдЧ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдирд╛ рдФрд░ рдмрдирд╛рдирд╛
рдЙрджреНрджреЗрд╢реНрдп:рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдПрдВ рдЬреЛ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ (рддреАрди рдЖрдпрд╛рдореА рд╕реНрдерд╛рди рдореЗрдВ)ред
рдЙрд╕рдХреЗ рдкрд╛рд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
- рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ x, y, z рдХреА рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рддрд╛
- рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреА рд▓рдВрдмрд╛рдИ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдзрд┐ред рд░реВрдЯ рдХреА рдЧрдгрдирд╛ Math.sqrt () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
s q r t x 2 + y 2 + z 2
- рд╕реНрдХреЗрд▓рд░ рдЙрддреНрдкрд╛рдж рдЧрдгрдирд╛ рд╡рд┐рдзрд┐:
x 1 x 2 + y 1 y 2 + z 1 z 2
- рдПрдХ рд╡реЗрдХреНрдЯрд░ рдЙрддреНрдкрд╛рдж рдХреА рджреВрд╕рд░реЗ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐:
(y_1z_2 - z_1y_2, z_1x_2 - x_1z_2, x_1y_2 - y_1_2_2 -
(y_1z_2 - z_1y_2, z_1x_2 - x_1z_2, x_1y_2 - y_1_2_2 -
- рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛ рд╡реИрдХреНрдЯрд░ рдХреЗ рдмреАрдЪ рдХреЗ рдХреЛрдг (рдпрд╛ рдХреЛрдг рдХреЗ рдХреЛрд╕рд╛рдЗрди) рдХреА рдЧрдгрдирд╛ рдХрд░рддреА рд╣реИ: рд╡реИрдХреНрдЯрд░ рдХреЗ рдмреАрдЪ рдХреЗ рдХреЛрдг рдХрд╛ рдХреЛрд╕рд╛рдЗрди рд╡реИрдХреНрдЯрд░ рдХреЗ рдореЙрдбреНрдпреВрд▓ (рд▓рдВрдмрд╛рдИ) рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рд╡реИрдХреНрдЯрд░ рдХреЗ рд╕реНрдХреЗрд▓рд░ рдЙрддреНрдкрд╛рдж рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддрд╛ рд╣реИ:
frac(рдП,рдмреА)|рдП| cdot|b|
- рдпреЛрдЧ рдФрд░ рдЕрдВрддрд░ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЗ:
(x1+x2,y1+y2,z1+z2)
(x1тИТx2,y1тИТy2,z1тИТz2)
- рдПрдХ рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐ рдЬреЛ рдкреВрд░реНрдгрд╛рдВрдХ N рдХреЛ рд▓реЗрддреА рд╣реИ рдФрд░ рдЖрдХрд╛рд░ N рдХреЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡реИрдХреНрдЯрд░ рдХреА рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рддреА рд╣реИред
рдпрджрд┐ рд╡рд┐рдзрд┐ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд▓реМрдЯрд╛рддреА рд╣реИ, рддреЛ рдЙрд╕реЗ рдПрдХ рдирдИ рд╡рд╕реНрддреБ рд╡рд╛рдкрд╕ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЖрдзрд╛рд░ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣реА рд╣реИ, рдЖрдкрдХреЛ "
рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд╕реНрддреБ " рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рд╕рдорд╛рдзрд╛рди: public class Vector {
рдЖрдк рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрд░рд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
public static void main(String[] args) { Vector[] vectors = Vector.generate(10); System.out.println(vectors[0]); System.out.println(vectors[1]); System.out.println(vectors[0].length()); System.out.println(vectors[0].scalarProduct(vectors[1])); System.out.println(vectors[0].crossProduct(vectors[1])); System.out.println(vectors[0].cos(vectors[1])); System.out.println(vectors[0].add(vectors[1])); System.out.println(vectors[0].subtract(vectors[1])); }
рдЖрдк рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЖрдпрд╛рдо рдХреЗ рд▓рд┐рдП рд╡реЗрдХреНрдЯрд░ рд╡рд░реНрдЧ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
public class Vector {
2.1ред рд╡рдЬрди рдХреЗ рд╕рд╛рде рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЖрдЗрдЯрдо рдмрдирд╛рдирд╛
рдЙрджреНрджреЗрд╢реНрдп:рдПрдХ рд╡рд░реНрдЧ рд▓рд┐рдЦреЗрдВ рдЬрд┐рд╕рдХрд╛ рдирд┐рд░реНрдорд╛рддрд╛ рджреЛ рд╕рд░рдгрд┐рдпрд╛рдБ рд▓реЗрддрд╛ рд╣реИ: рдореВрд▓реНрдпреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдФрд░ рдореВрд▓реНрдпреЛрдВ рдХреЗ рднрд╛рд░ рдХреА рдПрдХ рд╕рд░рдгреАред
рдХрдХреНрд╖рд╛ рдореЗрдВ рдПрдХ рд╡рд┐рдзрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдкрд╣рд▓реЗ рднрд╛рд░ рд╕реЗ рдПрдХ рддрддреНрд╡ рдХреЛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рд▓реМрдЯрд╛рдПрдЧреА, рдЗрд╕рдХреЗ рд╡рдЬрди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдПред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
рдПрдХ рд╕рд░рдгреА рджреА рдЧрдИ рд╣реИ [1, 2, 3] рдФрд░ рднрд╛рд░ рдХреА рдПрдХ рд╕рд░рдгреА [1, 2, 10]ред
рдФрд╕рддрди, рдореВрд▓реНрдп
"1" рдХреЛ рдореВрд▓реНрдп
"2" рд╕реЗ 2 рдЧреБрдирд╛ рдХрдо рдФрд░ рдорд╛рди
"3" рд╕реЗ рджрд╕ рдЧреБрдирд╛ рдХрдо рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рдорд╛рдзрд╛рди: class RandomFromArray { private int[] values;
рд▓реЗрдХрд┐рди, рдЪреВрдВрдХрд┐
рд╢реНрд░реЗрдгреА рд╕рд░рдгреА рдХреНрд░рдордмрджреНрдз рд╣реИ, рдЖрдк рдмрд╛рдЗрдирд░реА рдЦреЛрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ (рдФрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ):
public int getRandom() { int random = (int) (Math.random() * (sum - 1)); int index = Arrays.binarySearch(ranges, random); return values[index >= 0 ? index : -index - 2]; }
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рдФрд░ рд╕рдорд╛рдзрд╛рди рд╣реИред рдЖрдк рдПрдХ рд╕рд░рдгреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЖрдХрд╛рд░ рд╕рднреА рднрд╛рд░ рдХреЗ рдпреЛрдЧ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдлрд┐рд░ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЪреБрдирд╛рд╡ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдпрджрд┐ рдорд╛рдиреЛрдВ рдХрд╛ рдПрдХ рд╕рд░рдгреА [1, 2, 3], рдФрд░ рднрд╛рд░ рдХрд╛ рдПрдХ рд╕рд░рдгреА [1, 2, 10] рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдк рддреБрд░рдВрдд [1, 2, 2, 3, 3, 3, 3, 3, 3] рдХрд╛ рдПрдХ рд╕рд░рдгреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред 3, 3, 3, 3] рдФрд░ рдЗрд╕рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рддрддреНрд╡ рдирд┐рдХрд╛рд▓реЗрдВ:
class RandomFromArray { private int[] extended_values;
рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдПрдХ рдлрд╛рдпрджрд╛ рд╣реИ - рдкрд┐рдЫрд▓реЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рд▓реЙрдЧ (n) рдХреЗ рд╡рд┐рдкрд░реАрдд рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рддрддреНрд╡
O (1) рдирд┐рдХрд╛рд▓рдиреЗ рдХрд╛ рд╕рдордпред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:
O( рдпреЛрдЧn)
2.2ред рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА
рдПрдХ рдФрд░ рдХрд╛рд░реНрдп рдЬреЛ рдореИрдВ рдЕрдХреНрд╕рд░ рджреЗрддрд╛ рд╣реВрдВ рд╡рд╣ рдПрдХ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдпрд╣ рдЕрдкрдиреЗ рд╕рд░рд▓рддрдо рд░реВрдк рдореЗрдВ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд▓рд╛рдЧреВ
рдЬреЛрдбрд╝реЗрдВ () рдФрд░
рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдХреЗрд╡рд▓ )), рдпрд╛ рдЖрдк
java.util.List рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рдЗрд╕ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреВрдВрдЧрд╛, рдЬрд╛рд╡рд╛ рдореЗрдВ рд╣реИрдмрд░ рдореЗрдВ рдПрдХ рд▓рд┐рдВрдХреНрдб рд╕реВрдЪреА рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдХрдИ рд▓реЗрдЦ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ:
рдЪрд┐рддреНрд░реЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВред LinkedListрдЙрджреНрджреЗрд╢реНрдп:рдПрдХ рд╡рд┐рдзрд┐ рд▓рд┐рдЦрд┐рдП рдЬреЛ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рджрд┐рдпрд╛ рдЧрдпрд╛ рддрддреНрд╡ рдРрд░реЗ рдореЗрдВ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрдгрдирд╛ рдФрд░ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдЦреЛрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдмрдбрд╝реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдХреНрд░рдо рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ (рдЬреИрд╕реЗ рдХрд┐ 100000000 рддрддреНрд╡)ред
рд╕рдорд╛рдзрд╛рди: public static int bruteForce(double[] array, double key) { for (int i = 0; i < array.length; i++) { if (array[i] == key) return i; } return -1; } public static int binarySearchRecursively(double[] sortedArray, double key) { return binarySearchRecursively(sortedArray, key, 0, sortedArray.length); } private static int binarySearchRecursively (double[] sortedArray, double key, int low, int high) { int middle = (low + high) / 2;
3.1ред рд╕рдореАрдХрд░рдг рдХреА рдЬрдбрд╝ рдЬреНрдЮрд╛рдд рдХреАрдЬрд┐рдП
рдЙрджреНрджреЗрд╢реНрдп:рд╕рдореАрдХрд░рдг рдХреА рдЬрдбрд╝ рдЬреНрдЮрд╛рдд рдХреАрдЬрд┐рдП
cos(x5)+x4тИТ345.3тИЧxтИТ23=0
рдЦрдВрдб рдкрд░ [0; 10]
x рдореЗрдВ рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде 0.001 рд╕реЗ рдЦрд░рд╛рдм рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ рдЬрдбрд╝ рдЗрд╕ рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИред
рдЗрд╕рдХреЗ рд▓рд┐рдП
рд╣рд▓ рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ (рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╕рдорд╛рдзрд╛рди:
рдиреЛрдЯ: рдпрджрд┐ рд╣рдо
x рдореЗрдВ ,
y рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╕рдЯреАрдХрддрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╡рд┐рдзрд┐ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
if(Math.abs(func(start)- func(end)) <= 0.001){ return start; }
рдПрдХ рдЫреЛрдЯреА рд╕реА рдЪрд╛рд▓: рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рджреЛрд╣рд░реЗ рдорд╛рдиреЛрдВ рдХрд╛ рд╕реЗрдЯ рдкрд░рд┐рдорд┐рдд рд╣реИ (рджреЛ рдЖрд╕рдиреНрди рдореВрд▓реНрдп рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмреАрдЪ рдХреЛрдИ рджреЛрд╣рд░рд╛ рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реИрдВ), рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
double x = start + (end - start) / 2; if(x == end || x == start){ return x; }
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдЕрдзрд┐рдХрддрдо рд╕рдЯреАрдХрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдо рддреМрд░ рдкрд░ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
3.2ред рдмрд╛рдЗрдирд░реА рд╕рд░реНрдЪ рдЯреНрд░реА
рдПрдХ
рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдЦреЛрдЬ рдкреЗрдбрд╝ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдХрд╛рд░реНрдп рд╣реИред рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕реЗ рджреЗрддрд╛ рд╣реВрдВ рдЬрдм рдпрд╣ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ
рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВ рд▓рд┐рдЦреВрдВрдЧрд╛, рдмрд╣реБрдд рдЕрд▓рдЧ рддрд░рд╣ рдХреЗ рдХрдИ рд▓реЗрдЦ / рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ:
рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ: рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдкреЗрдбрд╝редрдмрд╛рдЗрдирд░реА рдЯреНрд░реА, рддреНрд╡рд░рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдЬрд╛рд╡рд╛ рдПрдХ рд╣реИрд╢реЗрдб рдмрд╛рдЗрдирд░реА рдЯреНрд░реА рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╡рд┐рд░рд╛рд╕рдд
4.0ред рдПрдХ рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдЬреЛ рддреАрди рдЖрдпрд╛рдореА рдЖрдХреГрддрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ
рдЙрджреНрджреЗрд╢реНрдп:рдПрдХ рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ:
рдмреЙрдХреНрд╕ рдХреНрд▓рд╛рд╕ рдПрдХ рдХрдВрдЯреЗрдирд░ рд╣реИ, рдЗрд╕рдореЗрдВ рдЕрдиреНрдп рдЖрдХреГрддрд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
рдРрдб () рд╡рд┐рдзрд┐ рдЖрдХрд╛рд░ рдХреЛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддреА рд╣реИред рдЬрдм рддрдХ рд╣рдо рдмреЙрдХреНрд╕ рдореЗрдВ рдЙрдирдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рдирд╣реАрдВ рд▓реЗрдВрдЧреЗ рддрдм рддрдХ рд╣рдореЗрдВ рдирдП рдЖрдХрд╛рд░ рдЬреЛрдбрд╝рдиреЗ рд╣реЛрдВрдЧреЗ (рд╣рдо рдХреЗрд╡рд▓ рдорд╛рддреНрд░рд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдЖрдХрд╛рд░ рдХреА рдЕрдирджреЗрдЦреА рдХрд░реЗрдВрдЧреЗред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рддрд░рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред рдпрджрд┐ рдПрдХ рдирдпрд╛ рдЖрдХрд╛рд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╡рд┐рдзрд┐
рдЭреВрдареА рд╡рд╛рдкрд╕ рдЖрдиреА рдЪрд╛рд╣рд┐рдПред
рд╕рдорд╛рдзрд╛рди: class Shape { private double volume; public Shape(double volume) { this.volume = volume; } public double getVolume() { return volume; } } class SolidOfRevolution extends Shape { private double radius; public SolidOfRevolution(double volume, double radius) { super(volume); this.radius = radius; } public double getRadius() { return radius; } } class Ball extends SolidOfRevolution {
рдЗрд╕ рдХрд╛рд░реНрдп рдореЗрдВ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рдХрдИ рдФрд░ рд░реВрдк рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред
4.1ред рдПрдХ рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдЬреЛ рддреАрди рдЖрдпрд╛рдореА рдЖрдХреГрддрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ - 2
рдЙрджреНрджреЗрд╢реНрдп:рдПрдХ рд╣реА рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдХрдХреНрд╖рд╛рдПрдВ рдЕрдореВрд░реНрдд рдХрд░реЗрдВред
рд╕рдорд╛рдзрд╛рди: abstract class Shape { public abstract double getVolume(); } abstract class SolidOfRevolution extends Shape { protected double radius; public SolidOfRevolution(double radius) { this.radius = radius; } public double getRadius() { return radius; } } class Ball extends SolidOfRevolution {
4.2ред рдПрдХ рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдЬреЛ рддреАрди рдЖрдпрд╛рдореА рдЖрдХреГрддрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ - 3
рдЙрджреНрджреЗрд╢реНрдп:рдПрдХ рд╣реА рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЫрд╛рддреНрд░реЛрдВ рдХреЛ
рддреБрд▓рдирд╛рддреНрдордХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдорд╛рдзрд╛рди: interface Shape extends Comparable<Shape>{ double getVolume(); @Override default int compareTo(Shape other) { return Double.compare(getVolume(), other.getVolume()); } } abstract class SolidOfRevolution implements Shape { protected double radius; public SolidOfRevolution(double radius) { this.radius = radius; } public double getRadius() { return radius; } } class Ball extends SolidOfRevolution {
4.3ред рдПрдХ рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдЬреЛ рддреАрди рдЖрдпрд╛рдореА рдЖрдХреГрддрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ - 4
рдЙрджреНрджреЗрд╢реНрдп:рдПрдХ рдордирдорд╛рдирд╛ рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдПрдХ рд░реЛрдЯреЗрд╢рди рдЖрдХрд╛рд░ рдЬреЛрдбрд╝реЗрдВред рдЖрдк рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрднрд┐рдиреНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдорд╛рдирд┐рдд рдорд╛рддреНрд░рд╛ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐
рдПрдХреНрд╕ рдЕрдХреНрд╖ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрд░реНрдгрди рдЖрдХреГрддрд┐ рдХрд╛ рдЖрдпрддрди рд╣реИ
Vx= pi intbaf2(x)dx
рдФрд░ рдЕрднрд┐рдиреНрди рд╣реИ
рддрдм рдЖрдк
рдЖрдпрдд рд╡рд┐рдзрд┐ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
class SolidRevolutionForFunction extends SolidOfRevolution { private Function<Double, Double> function; private double a; private double b; public SolidRevolutionForFunction( Function<Double, Double> function, double a, double b) { super(b - a); this.function = function; this.a = a; this.b = b; } @Override public double getVolume() { double sum = 0; int iterations = 10000; double delta = (b - a)/iterations; for(int i = 0; i < iterations; i++){ double x = a + ((b - a) * i/iterations); sum += Math.pow(function.apply(x), 2) * delta; } return Math.PI * sum; } }
public static void main(String[] args) { Shape shape = new SolidRevolutionForFunction(new Function<Double, Double>() { @Override public Double apply(Double x) { return Math.cos(x); } }, 0, 10); System.out.println(shape.getVolume()); }
рдмреЗрд╢рдХ, рд╣рдо рдпрд╣рд╛рдВ рдЧрдгрдирд╛ рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдЖрд╡рд╢реНрдпрдХ рд╕рдЯреАрдХрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд╛рдЬрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЪрдпрди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛рд░реНрдп рд╣реИ, рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рддрд░реАрдХреЗ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХрдХреНрд╖рд╛ рдореЗрдВ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред
рдкрдВрдХреНрддрд┐рдпрд╛рдВ
рдЖрдк рдкреНрд░рддрд┐ рдкрдВрдХреНрддрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрд╛рд░реНрдп рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдпреЗ рджреЗрддрд╛ рд╣реВрдВ:
- рдХрд┐рд╕реА рд╕рд░рдгреА рдореЗрдВ рд╕рдмрд╕реЗ рд▓рдВрдмреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рд▓рд┐рдЦреЗрдВред
- рдПрдХ рд╡рд┐рдзрд┐ рд▓рд┐рдЦреЗрдВ рдЬреЛ рдпрд╣ рдЬрд╛рдВрдЪрддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╢рдмреНрдж рдПрдХ рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рд╣реИ ред
- рдПрдХ рд╡рд┐рдзрд┐ рд▓рд┐рдЦрд┐рдП рдЬреЛ рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ
рдмрд▓реНрдХ "рдмрд╛рдпрдХрд╛" рд╢рдмреНрдж рдХреА рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдХреЛ "рдХрдЯ рдЖрдЙрдЯ" рдХреЗ рд╕рд╛рде рдмрджрд▓ рджреЗрддреА рд╣реИ
рд╕реЗрдВрд╕рд░ рдХрд┐рдпрд╛ рд╣реБрдЖ] " - рджреЛ рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВред рдПрдХ рд╡рд┐рдзрд┐ рд▓рд┐рдЦреЗрдВ рдЬреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рджреВрд╕рд░реЗ рдореЗрдВ рд▓реМрдЯрд╛рддреА рд╣реИред
рдореИрдВ рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рднреА рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрд╛рд░реНрдп рд╣реИрдВред
рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ, рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИ:
5.0ред рд░реВрд╕реА (рдпрд╛ рдЕрдВрдЧреНрд░реЗрдЬреА) рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рдЕрдХреНрд╖рд░реЛрдВ рдХреА рдЖрд╡реГрддреНрддрд┐ рд╢рдмреНрджрдХреЛрд╢ред
рдЙрджреНрджреЗрд╢реНрдп:рд░реВрд╕реА (рдпрд╛ рдЕрдВрдЧреНрд░реЗрдЬреА) рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рдЕрдХреНрд╖рд░реЛрдВ рдХрд╛ рдПрдХ рдЖрд╡реГрддреНрддрд┐ рд╢рдмреНрджрдХреЛрд╢ рдмрдирд╛рдПрдБред рд╣рдо рднрд╛рд╖рд╛ рдХреЗ рд╢рд░реАрд░ рдХреЛ рдЪреБрдирдиреЗ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рдпрд╣ рдЫреЛрдЯреА рд▓рдВрдмрд╛рдИ рдХреЗ рдкрд╛рда рдХреЛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛)ред
рд╕рдорд╛рдзрд╛рди: void buildDictionaryWithMap(String text){ text = text.toLowerCase(); Map<Character, Integer> map = new HashMap<>(); for(int i = 0; i < text.length(); i++){ char ch = text.charAt(i);
рдпрд╛ рддреЛ:
void buildDictionary(String text){ text = text.toLowerCase(); int[] result = new int['' - '' + 1]; for(int i = 0; i < text.length(); i++){ char ch = text.charAt(i); if(ch >= '' && ch <= ''){ result[ch - '']++; } } for(int i = 0; i < result.length; i++){ System.out.println((char) (i + '') + " = " + result[i]); } }
рд╕рд╛рд░ рд╡рд░реНрдЧ рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕
6.0ред рддрд╛рдкрдорд╛рди рдХрдирд╡рд░реНрдЯрд░
рдЙрджреНрджреЗрд╢реНрдп:рдбрд┐рдЧреНрд░реА
рд╕реЗрд▓реНрд╕рд┐рдпрд╕ рд╕реЗ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ BaseConverter рд╡рд░реНрдЧ рд▓рд┐рдЦреЗрдВ
рдХреЗрд▓реНрд╡рд┐рди ,
рдлрд╝рд╛рд░реЗрдирд╣рд╛рдЗрдЯ , рдФрд░ рдЗрд╕реА рддрд░рд╣ред рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ
рдХрдирд╡рд░реНрдЯ рд╡рд┐рдзрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬреЛ
рдФрд░ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рддрд╛ рд╣реИред
рд╕рдорд╛рдзрд╛рди: interface Converter { double getConvertedValue(double baseValue); } class CelsiusConverter implements Converter { @Override public double getConvertedValue(double baseValue) { return baseValue; } } class KelvinConverter implements Converter { @Override public double getConvertedValue(double baseValue) { return baseValue + 273.15; } } class FahrenheitConverter implements Converter { @Override public double getConvertedValue(double baseValue) { return 1.8 * baseValue + 32; } } public class Main { public static void main(String[] args) { double temperature = 23.5; System.out.println("t = " + new CelsiusConverter().getConvertedValue(temperature)); System.out.println("t = " + new KelvinConverter().getConvertedValue(temperature)); System.out.println("t = " + new FahrenheitConverter().getConvertedValue(temperature)); } }
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЖрдк рдПрдХ рдХрд╛рд░рдЦрд╛рдиреЗ рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ , рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ: interface Converter { double getConvertedValue(double baseValue); public static Converter getInstance(){ Locale locale = Locale.getDefault(); String[] fahrenheitCountries = {"BS", "US", "BZ", "KY", "PW"}; boolean isFahrenheitCountry = Arrays.asList(fahrenheitCountries).contains(locale.getCountry()); if(isFahrenheitCountry){ return new FahrenheitConverter(); } else { return new CelsiusConverter(); } } }
6.1ред рдкреВрд░реНрд╡рд╡рдд рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд╕реНрдЯреНрд░рд┐рдВрдЧрд░
рдХрд╛рд░реНрдп: рдкреВрд░реНрд╡рд╡рддрд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧрдмрд░реНрд▓ рдХреНрд▓рд╛рд╕ рдХреЛ рд▓рд┐рдЦреЗрдВ ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ StringBuilder рдХреЗ рд▓рд┐рдП рд╕рднреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ , рдФрд░ рдЕрдкрдиреА рдЦреБрдж рдХреА рдХрдХреНрд╖рд╛ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡рд╡рдд () рдХреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВ ред рдпрд╣ рдЯреАрдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛрдЧрд╛ ред рд╕рдорд╛рдзрд╛рди: class UndoableStringBuilder { private interface Action{ void undo(); } private class DeleteAction implements Action{ private int size; public DeleteAction(int size) { this.size = size; } public void undo(){ stringBuilder.delete( stringBuilder.length() - size, stringBuilder.length()); } } private StringBuilder stringBuilder;
6.2ред рд░рд╛рдЬреНрдп рдирд┐рд░реНрдорд╛рдг рд╕реНрдЯреНрд░рд┐рдВрдЧрд░ (рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдкреИрдЯрд░реНрди)
рдХрд╛рд░реНрдп:рдЕрдкрдиреЗ StringBuilder рд╡рд░реНрдЧ рдХреЛ рд▓рд┐рдЦреЗрдВ, рдЗрд╕рдХреЗ рд░рд╛рдЬреНрдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рдеред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ StringBuilder рдХреЗ рд▓рд┐рдП рд╕рднреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ , рдФрд░ рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдореЗрдВ рдСрдмреНрдЬрд░реНрд╡рд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ редрд╕рдорд╛рдзрд╛рди: interface OnStringBuilderChangeListener { void onChange(OvservableStringBuilder stringBuilder); } class OvservableStringBuilder {
6.3ред рдлрд┐рд▓реНрдЯрд░
рд╕рдорд╕реНрдпрд╛:рд▓рд┐рдЦреЗрдВ рд╡рд┐рдзрд┐ рдлрд┐рд▓реНрдЯрд░ , рдЬреЛ рдЗрдирдкреБрдЯ рд╕рд░рдгреА (рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА) рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реА рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ (рд╡рд╕реНрддреБ рдУ) , рд╕рд░рдгреА рд╕реЗ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд░реВрд░рдд рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛редрдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдпрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдпрд╛ рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИредрд╕рдорд╛рдзрд╛рди:рдЖрдорддреМрд░ рдкрд░, рдореИрдВ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдЬреЗрдирд░рд┐рдХ рд╕реЗ рдкрд╣рд▓реЗ рджреЗрддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдЫрд╛рддреНрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рд╡рд┐рдзрд┐ рд▓рд┐рдЦрддреЗ рд╣реИрдВ: interface Filter { boolean apply(Object o); } public class Main { public static Object[] filter(Object[] array, Filter filter) { int offset = 0; for(int i = 0; i< array.length; i++){ if(!filter.apply(array[i])){ offset++; } else{ array[i - offset] = array[i]; } }
рд▓реЗрдХрд┐рди, рдпрд╣ рдЬреЗрдирд░рд┐рдХ рдХреЗ рд╕рд╛рде рд╕рдВрднрд╡ рд╣реИред рддреЛ рдлрд┐рд░ рддреБрдо рдорд╛рдирдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╕рдорд╛рд░реЛрд╣ : public class Main { public static <T> T[] filter(T[] array, Function<? super T, Boolean> filter) { int offset = 0; for (int i = 0; i < array.length; i++) { if (!filter.apply(array[i])) { offset++; } else { array[i - offset] = array[i]; } }
6.4ред рдПрд░реЗ рдлрд┐рд▓рд┐рдВрдЧ
рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рдХрд╛рд░реНрдп:рдПрдХ рднрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рд▓рд┐рдЦреЗрдВ рдЬреЛ рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (рдпрд╛ рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ) рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИредрднрд░рдг рдкрджреНрдзрддрд┐ рдХреЛ рд╕рд╛рд░рдгреА рдХреЛ рднрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдлрд╝рдВрдХреНрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдирдпрд╛ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣реА рд╣реИ, рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ: public static void main(String[] args) { Integer[] squares = new Integer[100]; fill(squares, integer -> integer * integer);
рд╕рдорд╛рдзрд╛рди: public static <T> void fill(T[] objects, Function<Integer, ? extends T> function) { for(int i = 0; i < objects.length; i++){ objects[i] = function.apply(i); } }
рд╕рдВрдЧреНрд░рд╣
7.0ред рдлреНрд░реАрдХреНрд╡реЗрдВрд╕реА рдбрд┐рдХреНрд╢рдирд░реА рдСрдл рд╡рд░реНрдбреНрд╕
рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рдЖрд╡реГрддреНрддрд┐ рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рджреЗрдЦреЗрдВ7.1ред рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдЧреНрд░рд╣
рдХрд╛рд░реНрдп:рдПрдХ рд╡рд┐рдзрд┐ рд▓рд┐рдЦреЗрдВ рдЬреЛ рдПрдХ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд▓реМрдЯрд╛рддрд╛ рд╣реИредрд╕рдорд╛рдзрд╛рди: public static <T> Collection<T> removeDuplicates(Collection<T> collection) { return new HashSet<>(collection);
7.2ред ArrayList рдФрд░ LinkedList
рдПрдХ рдРрд╕рд╛ рддрд░реАрдХрд╛ рд▓рд┐рдЦреЗрдВ рдЬреЛ 1,000,000 рддрддреНрд╡реЛрдВ рдХреЛ рдПрдХ ArrayList рдФрд░ LinkedList рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдПрдХ рдЕрдиреНрдп рд╡рд┐рдзрд┐ рд▓рд┐рдЦрд┐рдП рдЬреЛ рднрд░реА рд╣реБрдИ рд╕реВрдЪреА рдореЗрдВ рд╕реЗ 100,000 рдмрд╛рд░ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рддрддреНрд╡ рдХрд╛ рдЪрдпрди рдХрд░рддреА рд╣реИред рдЗрд╕ рдкрд░ рдмрд┐рддрд╛рдП рд╕рдордп рдХреЛ рдорд╛рдкреЗрдВред рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ рдФрд░ рд╕реБрдЭрд╛рд╡ рджреЗрдВ рдХрд┐ рд╡реЗ рдХреНрдпреЛрдВ рд╣реИрдВредрд╕рдорд╛рдзрд╛рди: public static void compare2Lists() { ArrayList<Double> arrayList = new ArrayList<>(); LinkedList<Double> linkedList = new LinkedList<>(); final int N = 1000000; final int M = 1000; for (int i = 0; i < N; i++) { arrayList.add(Math.random()); linkedList.add(Math.random()); } long startTime = System.currentTimeMillis(); for (int i = 0; i < M; i++) { arrayList.get((int) (Math.random() * (N - 1))); } System.out.println(System.currentTimeMillis() - startTime); startTime = System.currentTimeMillis(); for (int i = 0; i < M; i++) { linkedList.get((int) (Math.random() * (N - 1))); } System.out.println(System.currentTimeMillis() - startTime); }
7.3ред рдПрдХ рд╕рд░рдгреА рдкрд░ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрдд рд▓рд┐рдЦреЗрдВ
рд╕рдорд╛рдзрд╛рди: class ArrayIterator<T> implements Iterator<T>{ private T[] array; private int index = 0; public ArrayIterator(T[] array) { this.array = array; } @Override public boolean hasNext() { return index < array.length; } @Override public T next() { if(!hasNext()) throw new NoSuchElementException(); return array[index++]; } }
7.4ред рджреНрд╡рд┐-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐
рдХрд╛рд░реНрдп:рджреНрд╡рд┐-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдкрд░ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрдд рд▓рд┐рдЦреЗрдВредрд╕рдорд╛рдзрд╛рди: class Array2d<T> implements Iterable<T>{ private T[][] array; public Array2d(T[][] array) { this.array = array; } @Override public Iterator<T> iterator() { return new Iterator<T>() { private int i, j; @Override public boolean hasNext() { for(int i = this.i; i< array.length; i++){ for(int j = this.j; j< array[i].length; j++){ return true; } } return false; } @Override public T next() { if(!hasNext()) throw new NoSuchElementException(); T t = array[i][j]; j++; for(int i = this.i; i< array.length; i++){ for(int j = (i == this.i ? this.j : 0); j< array[i].length; j++){ this.i = i; this.j = j; return t; } } return t; } }; } }
7.5ред рдПрдХ рдФрд░ рднреА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐
рдореБрдЭреЗ рдпрд╣ рдХрд╛рд░реНрдп рдкрд╕рдВрдж рд╣реИред рд╡рд╣ рд╕рдореВрд╣ рдореЗрдВ рдХреБрдЫ рд╣реА рдЫрд╛рддреНрд░реЛрдВ рддрдХ рдкрд╣реБрдБрдЪрддреА рд╣реИ рдЬреЛ рдкрд┐рдЫрд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЖрд╕рд╛рди рд╣реЛрддреЗ рд╣реИрдВредрдХрд╛рд░реНрдп:рджрд╛рди рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ред рдЕрдЧрд▓реА () рдкрджреНрдзрддрд┐ рдпрд╛ рддреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдПрдХ рд╣реА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдХрд░реНрддрд╛ (рдЬреЛ рдХрд┐ рдлрд┐рд░ рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рд╕рдорд╛рди рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рд▓реМрдЯрд╛рддрд╛ рд╣реИ) рджреЗрддрд╛ рд╣реИред рдЗрд╕ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд▓рд┐рдЦреЗрдВ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "рдлреНрд▓реИрдЯ" рдПрдХредрдвреЗрд░ рдкрд░ рд╕рдорд╛рдзрд╛рди: public class DeepIterator implements Iterator<String> { private Stack<Iterator> iterators; private String next; private boolean hasNext; public DeepIterator(Iterator<?> iterator) { this.iterators = new Stack<Iterator>(); iterators.push(iterator); updateNext(); } @Override public boolean hasNext() { return hasNext; } private void updateNext(){ if(iterators.empty()){ next = null; hasNext = false; return; } Iterator current = iterators.peek(); if (current.hasNext()) { Object o = current.next(); if (o instanceof String) { next = (String) o; hasNext = true; } else if (o instanceof Iterator) { Iterator iterator = (Iterator) o; iterators.push(iterator); updateNext(); } else { throw new IllegalArgumentException(); } } else { iterators.pop(); updateNext(); } } @Override public String next() throws NoSuchElementException { if(!hasNext){ throw new NoSuchElementException(); } String nextToReturn = next; updateNext(); return nextToReturn; } @Override public void remove() { throw new UnsupportedOperationException(); } }
рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╕рдорд╛рдзрд╛рди: class DeepIterator implements Iterator<String> { private Iterator subIter; private DeepIterator newIter; public DeepIterator(Iterator iniIter) { this.subIter = iniIter; } @Override public boolean hasNext() { if (subIter.hasNext()) return true; if (newIter != null) return newIter.hasNext(); return false; } @Override public String next() { if(!hasNext()) throw new NoSuchElementException(); Object obj = null; if (newIter != null && newIter.hasNext()) obj = newIter.next(); if (subIter.hasNext() && obj == null) { obj = subIter.next(); if (obj instanceof Iterator && ((Iterator) obj).hasNext()) { newIter = new DeepIterator((Iterator) obj); } } if(obj instanceof Iterator){ obj = next(); } return (String) obj; } }
7.6ред рджреЛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдкрд░ Iterator
рдХрд╛рд░реНрдп:рдПрдХ рдкреБрдирд░рд╛рд╡реГрддрд┐ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓рд╛ рдЬреЛ рджреЛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИредрд╕рдорд╛рдзрд╛рди: class ConcatIterator<T> implements Iterator<T> { private Iterator<T> innerIterator1; private Iterator<T> innerIterator2; public ConcatIterator (Iterator<T> innerIterator1, Iterator<T> innerIterator2) { this.innerIterator1 = innerIterator1; this.innerIterator2 = innerIterator2; } @Override public boolean hasNext() { while (innerIterator1.hasNext()) return true; while (innerIterator2.hasNext()) return true; return false; } @Override public T next() { if(!hasNext()) throw new NoSuchElementException(); while (innerIterator1.hasNext()) return innerIterator1.next(); while (innerIterator2.hasNext()) return innerIterator2.next(); return null; } }
7.7ред рдЧрд┐рдирддреА рдХреЗ рддрддреНрд╡
рдПрдХ рд╡рд┐рдзрд┐ рд▓рд┐рдЦреЗрдВ рдЬреЛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ K (рдЬреЗрдиреЗрд░рд┐рдХ) рдкреНрд░рдХрд╛рд░ рдХреЗ рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдирдХреНрд╢рд╛ <K, Integer> рджреЗрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ K рд╕рд░рдгреА рд╕реЗ рдорд╛рди рд╣реИ рдФрд░ Integer рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИредрдпрд╣ рд╣реИ, рд╡рд┐рдзрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ: <K> Map<K, Integer> arrayToMap(K[] ks);
рд╕рдорд╛рдзрд╛рди: public static <K> Map<K, Integer> countValues(K[] ks) { Map<K, Integer> map = new HashMap<>(); for (K k : ks) { map.compute(k, new BiFunction<K, Integer, Integer>() { @Override public Integer apply(K k, Integer count) { return count == null ? 1 : count + 1; } }); } return map; }
7.8ред рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рдЪрд╛рдмрд┐рдпрд╛рдБ рдФрд░ рдореВрд▓реНрдп рдмрджрд▓реЗрдВ
рдореИрдк <рдХреЗ, рд╡реА> рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╡рд┐рдзрд┐ рд▓рд┐рдЦреЗрдВ рдФрд░ рдореИрдк рдХреЛ рд▓реМрдЯрд╛рдПрдВ, рдЬрд╣рд╛рдВ рдЪрд╛рдмрд┐рдпрд╛рдБ рдФрд░ рдореВрд▓реНрдп рдЙрд▓рдЯ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдорд╛рди рд╕рдВрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдк рдореЗрдВ рдорд╛рди рдкреНрд░рдХрд╛рд░ рдЕрдм K рдирд╣реАрдВ рд╣реЛрдЧрд╛ , рд▓реЗрдХрд┐рди рд╕рдВрдЧреНрд░рд╣ <K>:
Map<V, Collection<K>>
рд╕рдорд╛рдзрд╛рди: public static <K, V> Map<V, Collection<K>> inverse(Map<? extends K, ? extends V> map){ Map<V, Collection<K>> resultMap = new HashMap<>(); Set<K> keys = map.keySet(); for(K key : keys){ V value = map.get(key); resultMap.compute(value, (v, ks) -> { if(ks == null){ ks = new HashSet<>(); } ks.add(key); return ks; }); } return resultMap; }
рдмрд╣реБ рд╕реВрддреНрд░рдг
8.0ред рд░рд╛рдЬреНрдпреЛрдВ
рдХрд╛рд░реНрдп:рдкреНрд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдФрд░ рд░рдирдЯрд╛рдЗрдо рдХреЗ рдмрд╛рдж рд╕реНрдЯреНрд░реАрдо рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВредрд╕рдорд╛рдзрд╛рди: Thread thread = new Thread() { @Override public void run() { System.out.println(getState()); } }; System.out.println(thread.getState()); thread.start(); try {
рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЕрд╡рд░реБрджреНрдз: public static void main(String[] strings) throws InterruptedException { Object lock = new Object(); Thread thread = new Thread() { @Override public void run() { try { synchronized (lock) { lock.notifyAll(); lock.wait(); } } catch (InterruptedException e) { e.printStackTrace(); } } }; synchronized (lock){ thread.start();
рдХреЗ рд▓рд┐рдП TIMED_WAITING рдереЛрдбрд╝рд╛ рд╣реА рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд: public static void main(String[] strings) throws InterruptedException { Object lock = new Object(); Thread thread = new Thread() { @Override public void run() { try { synchronized (lock) { lock.notifyAll(); lock.wait(3000); } } catch (InterruptedException e) { e.printStackTrace(); } } }; synchronized (lock) { thread.start();
8.1ред рдзрд╛рдЧрд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди
рдХрд╛рд░реНрдп:рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦреЗрдВ рдЬрд┐рд╕рдореЗрдВ рджреЛ рдереНрд░реЗрдб рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдХрдВрд╕реЛрд▓ рдкрд░ рдЕрдкрдирд╛ рдирд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВредрд╕рдорд╛рдзрд╛рди: class StepThread extends Thread {
8.2ред рдирд┐рд░реНрдорд╛рддрд╛-рдЙрдкрднреЛрдХреНрдд
рдХреНрд▓рд╛рд╕рд┐рдХ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХред рджреЛ рдзрд╛рд░рд╛рдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП - рдирд┐рд░реНрдорд╛рддрд╛ рдФрд░ рдЙрдкрднреЛрдХреНрддрд╛ред рдирд┐рд░реНрдорд╛рддрд╛ рдХреБрдЫ рдбреЗрдЯрд╛ (рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕рдВрдЦреНрдпрд╛) рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдирд┐рд░реНрдорд╛рддрд╛ рдЙрдиреНрд╣реЗрдВ "рдЦрдкрдд" рдХрд░рддрд╛ рд╣реИредрджреЛ рд╕реНрдЯреНрд░реАрдо рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдбреЗрдЯрд╛ рдмрдлрд░ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЖрдХрд╛рд░ рд╕реАрдорд┐рдд рд╣реИред рдпрджрд┐ рдмрдлрд░ рдЦрд╛рд▓реА рд╣реИ, рддреЛ рдЙрдкрднреЛрдХреНрддрд╛ рдХреЛ рдбреЗрдЯрд╛ рдХреЗ рд╡рд╣рд╛рдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдмрдлрд░ рднрд░рд╛ рд╣реБрдЖ рд╣реИ, рддреЛ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рддрдм рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдХрд┐ рдЙрдкрднреЛрдХреНрддрд╛ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд▓реЗ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЬрдЧрд╣ рдЦрд╛рд▓реА рд╣реЛ рдЬрд╛рддреА рд╣реИредрдирд┐рд░реНрдорд╛рддрд╛:
рдЙрдкрднреЛрдХреНрддрд╛:
рдмрдирд╛рдПрдВ рдФрд░ рдЪрд▓рд╛рдПрдВ: public static void main(String[] strings) { LinkedList<Double> sharedQueue = new LinkedList<>(); int size = 4; Thread prodThread = new Thread(new Producer(sharedQueue, size), "Producer"); Thread consThread = new Thread(new Consumer(sharedQueue), "Consumer"); prodThread.start(); consThread.start(); }
9.0ред рдЦреБрдж рдХрд╛ рдПрдиреЛрдЯреЗрд╢рди - рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЙрдкрдпреЛрдЧ
рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рдХрд╛рд░реНрдп рджреЗрддрд╛ рд╣реВрдВ рдЬрдм рдпрд╣ рдПрдиреЛрдЯреЗрд╢рди рдФрд░ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рдЖрдк рдПрдХреНрдЬрд┐рдХреНрдпреВрдЯрд░реНрд╕ , рдереНрд░реЗрдбрдкреВрд▓ рдПрдХреНрдЬрд╝реАрдХреНрдпреВрдЯрд░ рдФрд░ рдЕрдиреНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрдЯрд╛рд╕реНрдХ: рдкреВрд░реНрдгрд╛рдВрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рдердЕрдкрдирд╛ рд░рд┐рдкреАрдЯ рдПрдиреЛрдЯреЗрд╢рди рдмрдирд╛рдПрдВ редрд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ ThreadPoolExecutor рдФрд░ рдУрд╡рд░рд░рд╛рдЗрдб рд╡рд┐рдзрд┐ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: рдпрджрд┐ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг Runnable рд╕рд╛рде рдЯрд┐рдкреНрдкрдгреА рдХреА рдЬрд╛рддреА рд╣реИ рджреЛрд╣рд░рд╛рдПрдБ , рддреЛ рдЗрд╕рдХреА рд╡рд┐рдзрд┐ рд░рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрдИ рдмрд╛рд░ (рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рджреЛрд╣рд░рд╛рдПрдБ )редрдЕрд░реНрдерд╛рддреН, рдпрд╣ рд╡рд░реНрдЧ рд▓рд┐рдЦрдХрд░: @Repeat(3) class MyRunnable implements Runnable{ @Override public void run() { System.out.println("Hello!"); } }
рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░: public static void main(String[] strings) { CustomThreadPoolExecutor customThreadPoolExecutor = new CustomThreadPoolExecutor(10); customThreadPoolExecutor.execute(new MyRunnable()); }
рд╣рдореЗрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП: Hello! Hello! Hello!
рд╕рдорд╛рдзрд╛рди: @Retention(RetentionPolicy.RUNTIME) @interface Repeat { int value(); } class CustomThreadPoolExecutor extends ThreadPoolExecutor { public CustomThreadPoolExecutor(int corePoolSize) {
рдЕрдВрддрд┐рдо рдФрд░ рдЕрдиреНрдп рдХрд╛рд░реНрдп
рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рджреМрд░рд╛рди, рдореИрдВ рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рдХрдИ рдХрдард┐рди рдХрд╛рд░реНрдп рджреЗрддрд╛ рд╣реВрдВ - рдкреВрд░реЗ рдкрд╛рда рдХреЗ рд▓рд┐рдПред рдкрд╣рд▓реЗ рд╕реЗ рд╕реАрдЦреЗ рдЧрдП рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЫреЛрдЯрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╡реИрд╕реЗ, рдпрд╣рд╛рдВ рдЕрдХреНрд╕рд░ рдЬрдЯрд┐рд▓рддрд╛ рдкреИрджрд╛ рд╣реЛрддреА рд╣реИред рдПрдХ рд╡рд┐рдзрд┐ рд▓рд┐рдЦрдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдПрдХ рдмрд╛рдд рд╣реИ, рдФрд░ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╣ рд╕рдм рдХреБрдЫ рдпрд╛рдж рд░рдЦреЗрдВ рдЬреЛ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдЬрд╛рд╡рд╛ рдореЗрдВ рдЕрднреА рднреА 50 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реИред рд▓реЗрдХрд┐рди рдкрд╛рда рдореЗрдВ, рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдзрдХреЗрд▓ рд╕рдХрддрд╛ рд╣реВрдВ, рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕реБрд▓рдЭрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдбрд┐рдмреЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд╕рд╣реА рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рддрд░реАрдХреЗ рдвреВрдВрдв рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдХрдИ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред рдЗрд╕ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рджреЗрддрд╛ рд╣реВрдВредрдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕рднреА рдХреЛ рдЕрдВрддрд┐рдо рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣реА рд╣реИ, рдШрд░ рдкрд░, рдЕрдкрдиреЗ рджрдо рдкрд░, рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦреЗрдВред рдереЛрдбрд╝рд╛ рдФрд░ рдЬрдЯрд┐рд▓ред рдореИрдВ рдЖрдкрдХреЛ рдХрдИ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЪреБрдирдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрддрд╛ рд╣реВрдВред рд╡реИрд╕реЗ, рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╛ рдЖрдк рдПрдХ рд╕рд╛рде рдХрдИ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╡реНрдпрдХреНрддрд┐ рдпрд╛рдж рд╣реИ рдЬрд┐рд╕рдиреЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓рд┐рдЦрд╛ рд╣реИред10.0ред рд╕рдбрд╝рдХ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛
рдПрдХ рдЫреЛрдЯрд╛ рдХрд╛рд░реНрдп рдЬреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдбрд╛рдЯрд╛ рддреИрдпрд╛рд░реА:рдХреЗ рд╕рд╛рде рдкреЛрд░реНрдЯрд▓ рдЦреБрд▓рд╛ рдбреЗрдЯрд╛ рдХреЗ рд╕реЗрдВрдЯ рдкреАрдЯрд░реНрд╕рдмрд░реНрдЧ рд▓реЛрдб рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд╣рди рдХреА рдЖрд╡рд╛рдЬрд╛рд╣реА рдХреА рд╕реАрдорд╛ рдкрд░ рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕реАрдПрд╕рд╡реА редрдХрд╛рд░реНрдп:рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд┐рдерд┐ рдкрд░ рд╢рд╣рд░ рдореЗрдВ рдХрд┐рддрдиреЗ рд╕рдбрд╝рдХ рдкреНрд░рддрд┐рдмрдВрдз рд▓рд╛рдЧреВ рдереЗредрдХрд╛рд░реНрдпрдХреНрд░рдо рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ:- рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкрде
- рддрд┐рдерд┐
рдпрд╣ рд╣реИ, рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ: java TrafficBlocks "PATH_TO_CSV_FILE" dd.MM.yyyy
рдЗрд╕ рддрд┐рдерд┐ рдкрд░ рд▓рд╛рдЧреВ рдпрд╛рддрд╛рдпрд╛рдд рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрдЯреМрддреА рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИредрдЕрдиреБрдХрд░рдгреАрдп рдПрд▓реНрдЧреЛрд░рд┐рдереНрдорд╡реИрд╕реЗ, рд╕рднреА рд╕рдордп рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдбреЗрдЯрд╛ (yyyMMdd) рдореЗрдВ рджрд┐рдирд╛рдВрдХ рд╕реНрд╡рд░реВрдк рдРрд╕рд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкрд╛рд░реНрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддрд╛рд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВред рддреЛ рд╕рдорд╛рдзрд╛рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рджрд┐рдирд╛рдВрдХ, рдХреИрд▓реЗрдВрдбрд░, DateFormat рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рджреЗрддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рд╕рд░рд▓реАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрдм рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕рдм рдХреБрдЫ рд▓рд┐рдЦрд╛ рдерд╛редрдореИрдВ рдпрд╣рд╛рдВ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд▓рд╛рддрд╛, рд╡реЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред10.1редрд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдЦреЛрдЬред рдХрдВрд╕реЛрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ
рдХрд╛рд░реНрдп:рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦреЗрдВ, рдЬреЛ рдХрдВрд╕реЛрд▓ рд╕реЗ рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдХрд╛рд░реНрдп рдХреЛ 4 рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:- рдЕрдиреБрд░реЛрдз рдкрдврд╝реЗрдВ
- рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ
- рдЙрддреНрддрд░ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВ
- рдкреНрд░рд┐рдВрдЯ рдкрд░рд┐рдгрд╛рдо
рдкрд╣рд▓реЗ рдФрд░ рдЪреМрдереЗ рдмрд┐рдВрджреБ рдХреЛ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдЗрдП рд╣рдо рд╕рд░реНрд╡рд░ рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░ рдзреНрдпрд╛рди рджреЗрдВредрдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рднреА рдХрдИ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:- рдЕрдиреБрд░реЛрдз рдЬрдирд░реЗрд╢рди
- рд╕рд░реНрд╡рд░ рдХрд╛ рдЕрдиреБрд░реЛрдз
- рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░реА рдХрд░ рд░рд╣рд╛ рд╣реИ
- рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг
рдЖрдЗрдП рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: рдПрдкреАрдЖрдИрдЕрдиреБрд░реЛрдз рдкреАрдврд╝реАрдмрд┐рдирд╛ рдЪрд╛рдмреА рдХреЗ рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдЗрд╕ рддрд░рд╣, рд▓рдЧрднрдЧ: https://ru.wikipedia.org/w/api.php?action=query&list=search&utf8=&format=json&srsearch="Java"
рдЖрдк рдЗрд╕ рд▓рд┐рдВрдХ рдХреЛ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдиреБрд░реЛрдз рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВредрд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд▓рд┐рдВрдХ рд╕реЗ рдЕрдорд╛рдиреНрдп рд╡рд░реНрдгреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рддреН , рдкреНрд░рддрд┐рд╢рдд-рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд░реЗрдВ , рдЬреЛ URL рдПрдирдХреЛрдбрд┐рдВрдЧ рднреА рд╣реИредрдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛ рдореЗрдВ, рдЖрдк рдЗрд╕ рддрд░рд╣ URLEncoder рд╡рд░реНрдЧ рдореЗрдВ рд╕реНрдерд┐рд░ рдПрдирдХреЛрдб рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ : street = URLEncoder.encode(street, "UTF-8");
рдпрд╣ рдмрд╛рдд рд╣реИ, URL рддреИрдпрд╛рд░ рд╣реИ! рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрднреА рднреА рдмрдирд╛ рд╣реБрдЖ рд╣реИ ... рд╕рд░реНрд╡рд░ рд╕реЗрдЕрдиреБрд░реЛрдзрдХрд░реЗрдВ GET рдФрд░ POST рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк HttpURLConnection рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдпрд╣ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╣реИред рдмрд╕ рдмрдирд╛рдПрдВ, рдПрдХ рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓реЗрдВ рдФрд░ рдПрдХ рдЗрдирдкреБрдЯрд╕реНрдЯреНрд░реАрдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ ред рд╣рдореЗрдВ рдЗрд╕реЗ рдкрдврд╝рдирд╛ рднреА рдирд╣реАрдВ рд╣реИ, рд╣рдорд╛рд░реЗ рд▓рд┐рдП Gson рдХрд░реЗрдЧрд╛ редрдЖрдк рд░реЗрдЯреНрд░реЛрдлрд┐рдЯ , рдпрд╛ рдХреБрдЫ рд╕рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ редрдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рддреИрдпрд╛рд░реАрд╕рд░реНрд╡рд░ JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рджреЗрддрд╛ рд╣реИ редрд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП Google рд╕реЗ рдПрдХ Gson рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИредрдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдБ рд╣реИрдВ:https://github.com/google/gsonhttps://habrahabr.ru/company/naumen/blog/228279/рдпрджрд┐ рд╕рдордп рдмрдЪрд╛ рд╣реИ, рддреЛ рдЖрдк рдЦреЛрдЬ рдХреЗ рджреМрд░рд╛рди рдЪреБрдиреЗ рдЧрдП рд▓реЗрдЦ рдХреА рд░рд╕реАрдж рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реА рддрд░рд╣ред10.2ред рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдп - HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛
HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ ... рдХреНрдпрд╛ рдпрд╣ рдкрд░рд┐рдЪрд┐рдд рд╣реИ? рд╣рд╛рдБ, рдпрд╣ рдмрд╛рдд рд╣реИ - рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдп рдХреА рдХрд╣рд╛рдиреА ред рд╕рдм рдХреБрдЫ рддрд╛рд░реНрдХрд┐рдХ рд╣реИ - рдЬрд╛рд╡рд╛ рдХреЛрд░реНрд╕ рдХрд╛ рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдп рдЬреВрдирд┐рдпрд░ рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдп рдХреЗ рд╕рдорд╛рди рд╕реНрддрд░ рдкрд░ рд╣реИредрдФрд░ рдпрд╣ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рд╣реИ - рд╕реАрдзреА, рд▓реЗрдХрд┐рди рд╡рд┐рд╡рд┐рдз рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рд╖рдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЖрдк рддреБрд░рдВрдд рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд▓реЗрдЦрдХ рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рд╕рдВрд░рдЪрдирд╛ рдХрд░рддрд╛ рд╣реИ, рд╡рд┐рднрд┐рдиреНрди рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдФрд░ рдкреИрдЯрд░реНрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╕реНрд╡рдпрдВ рднрд╛рд╖рд╛ рдФрд░ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред10.3ред рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдп - рдореМрд╕рдо рдЯреЗрд▓реАрдЧреНрд░рд╛рдо-рдмреЙрдЯ
рдХрд╛рд░реНрдп:рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЙрдЯ рд▓рд┐рдЦреЗрдВ, рдЬреЛ рд╣реЛрдЧрд╛:- .
- , . /subscribe. (/unsubscribe).
рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк https://openweathermap.org/api рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ редрдпрд╣ рдХрд╛рд░реНрдп рдирдИ рддрдХрдиреАрдХ (рдмреЙрдЯ-рдЕрдкреА) рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдФрд░ рдХреНрд╖рдорддрд╛ рдкрд░ рд╣реИред рдФрд░ рдЖрдкрдХреЛ рд╡реАрдкреАрдПрди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ! рдФрд░ рдЖрдкрдХреЛ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдмрд┐рд▓реНрдХреБрд▓редрд╡реИрд╕реЗ, рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЫрд╛рддреНрд░ рд╡рд╛рдХреНрдпрд╛рдВрд╢ "рднреЗрдЬреЗ рдЧрдП рд╕реНрдерд╛рди" рдФрд░ рдЗрд╕реЗ рднреЗрдЬрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдПрдХ рдмреЙрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рд╢рд╣рд░ рдХреЗ рдирд╛рдо рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВ рдпрд╣ рдЕрдХреНрд╕рд░ рдЦрд░рд╛рдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ , рдХреЛрдб рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдРрд╕рд╛ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред10.4ред рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдп - рд▓рд┐рдЦрд╛рд╡рдЯ рдХреА рдорд╛рдиреНрдпрддрд╛
рдЙрджреНрджреЗрд╢реНрдп:рд╣рд╕реНрддрд▓рд┐рдЦрд┐рдд рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╡рд░реНрдЧреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд╛рдЧреВ рдХрд░реЗрдВредрдпрд╣ рдХрд╛рд░реНрдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдЖрдорддреМрд░ рдкрд░ рдЫрд╛рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмрд╣реБрдд рд╕рдВрд░рдЪрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИредрдХрд╛рд░реНрдп рдХрд╛ рд╡рд┐рд╡рд░рдгрдЕрдзреНрдпрдпрди рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рд╕реНрддрд▓рд┐рдЦрд┐рдд рдЕрдВрдХреЛрдВ рдХреА рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ MNIST рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ ред рдЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди 28x28 рд╣реИ рдФрд░ рдЗрд╕реЗ рдЧреНрд░реЗрд╕реНрдХреЗрд▓ рдорд╛рдиреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреВрд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдкреНрд░рд╢рд┐рдХреНрд╖рдг, рдЬрд┐рд╕рдореЗрдВ 50,000 рдЪрд┐рддреНрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдФрд░ рдкрд░реАрдХреНрд╖рдг - 10,000 рдЪрд┐рддреНрд░редрдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдХрдЯрддрдо рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдХреА рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ- рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рд░реНрдЧреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдореАрдЯреНрд░рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдоред рдирд┐рдХрдЯрддрдо рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдХреА рдкрджреНрдзрддрд┐ рдХрд╛ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд рдпрд╣ рд╣реИ рдХрд┐ рд╡рд╕реНрддреБ рдЙрд╕ рд╡рд░реНрдЧ рдХреЛ рд╕реМрдВрдкреА рдЬрд╛рддреА рд╣реИ рдЬреЛ рдЗрд╕ рддрддреНрд╡ рдХреЗ рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдЖрдо рд╣реИредрдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдХреЛ рдХрдИ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХреА рдХрдХреНрд╖рд╛рдПрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреНрдЮрд╛рдд рд╣реИрдВ, рдФрд░, рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд▓рд┐рдП рдХрд╢реНрдореАрд░ рдХреЗ рдкреНрд░рдореБрдЦ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреМрди рд╕реА рдХрдХреНрд╖рд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдореАрдЯреНрд░рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рдХреА рд╕рд╛рдорд╛рдиреНрдп рджреВрд░реАредрдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рдЖрдкрдХреЛрдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╣рд╕реНрддрд▓рд┐рдЦрд┐рдд рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдкрд╣рдЪрд╛рди рд▓реЗрдЧрд╛ред рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд░реНрдЧ рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рдПрдХрд▓ рдЫрд╡рд┐ рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПредрдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдЗрд╕рдХреА рд╕рдЯреАрдХрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП (рддреНрд░реБрдЯрд┐ рджрд░ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ)ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, 10,000 рдкрд░реАрдХреНрд╖рдг рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредрд╕рдЯреАрдХрддрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ: рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдореАрдЯреНрд░рд┐рдХ рдХреЗ рдмрдЬрд╛рдп , рд╢рд╣рд░ рдХреЗ рдмреНрд▓реЙрдХреЛрдВ рдХреА рджреВрд░реА , рд╡реИрдХреНрдЯрд░ рдпрд╛ рдХреБрдЫ рдФрд░ рдХреЗ рдмреАрдЪ рдХреЗ рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ , рдФрд░ рдорд╛рдиреНрдпрддрд╛ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВредрдЗрд╕рдХреЗ рд╕рд╛рде рд╣реАрдпрджрд┐ рд╕рдмрдХреБрдЫ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдХрд╛рд░реНрдп рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рдЬрдЯрд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢реЛрд░ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ (рдЙрддреНрд╕рд░реНрдЬрди) рдпрд╛ рд╕рдЯреАрдХрддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рдЬреЗрдиреЛрд╡рд╕реНрдХреА рдЦрд┐рдбрд╝рдХреА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ редрдХреБрдЫ рдФрд░ рд╢рдмреНрдж
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╢рд╛рдВрдд рдХрд╛рд░реНрдп рд╣реИрдВ рдЬреЛ рдЖрдк рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ (рдПрдХ рдЕрдиреБрдорд╛рдирд┐рдд рд╕рдорд╛рдзрд╛рди рд╕рдордп рдПрдХ рдпрд╛ рджреЛ рдШрдВрдЯреЗ рд╣реИ), рддреЛ рдЙрдиреНрд╣реЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВред