рдбрд░рд╛рд╡рдирд╛ рд╕реЗрдЯ

рд╣рдо рдЗрд╕ рддрдереНрдп рдХреЗ рдЕрднреНрдпрд╕реНрдд рд╣реИрдВ рдХрд┐ рдЬреЗрдбреАрдХреЗ рдореЗрдВ рдорд╛рдирдХ рд╕рдВрдЧреНрд░рд╣ рдХрд╛рдлреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ рдФрд░ рд╕рд╣рдЬ рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╕рдЪ рдореЗрдВ рдРрд╕рд╛ рд╣реИ? рдХрд▓ рд░реЛрдорди рдПрд▓реЗрдЧрд╛рд░реЛрд╡ElizarovрдЯреНрд╡рд┐рдЯрд░ рдкрд░ рдПрдХ рдирдП рджрд┐рд▓рдЪрд╕реНрдк рдЬрд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЦрдмрд░ рдкреЛрд╕реНрдЯ рдХреА ред

рдХрд╕рдХрд░ рдкрдХрдбрд╝реЗрдВ: Set.removeAll(list)рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ O (Nред) рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХреИрд╕реЗ?



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

рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдЬреЙрди рд╕реНрдХреАрдЯ рдиреЗ рдПрдХ рдкреЛрд╕реНрдЯ рд▓рд┐рдЦрд╛, "рдореЗрд░реЗ рдЕрдореВрд░реНрдд рдореЗрдВ рдПрдХ рдЫреЗрдж рд╣реИ, рдкреНрд░рд┐рдп рд▓рд┐рдЬрд╛, рдкреНрд░рд┐рдп рд▓рд┐рдЬрд╛" , рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджрд┐рд▓рдЪрд╕реНрдк рдорд╛рдорд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ HashSet рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд╣рдо рдХреБрдЫ рдбрд┐рд▓реАрдЯ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рджреВрд╕рд░реЗ рд╕рдВрдЧреНрд░рд╣ B рд╕реЗ рддрддреНрд╡реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдЕрдХреНрд╕рд░ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ B рдХреЗ рдХрдИ рддрддреНрд╡ рдмрд╕ A рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рд╣рдо рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ рдЬрдм A рдФрд░ B рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЕрдВрддрд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ - рдЕрд░реНрдерд╛рдд, рдХреБрдЫ рднреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

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

import java.util.*;
public class Test {
    public static void main(String[] args) {
       int sourceSize = Integer.parseInt(args[0]);
       int removalsSize = Integer.parseInt(args[1]);

       Set<Integer> source = new HashSet<Integer>();
       Collection<Integer> removals = new ArrayList<Integer>();

       for (int i = 0; i < sourceSize; i++) {
           source.add(i);
       }
       for (int i = 1; i <= removalsSize; i++) {
           removals.add(-i);
       }

       long start = System.currentTimeMillis();
       source.removeAll(removals); 
       long end = System.currentTimeMillis();
       System.out.println("Time taken: " + (end - start) + "ms");
    }
}

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

$ java Test 100 100
Time taken: 1ms

рдЕрдм рддрдХ, рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рддреЗрдЬ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?

java Test 1000000 300000
Time taken: 38ms

$java Test 300000 300000
Time taken: 178131ms

рдЖрдкрдХреЛ рдпрд╣ рдХреИрд╕реЗ рдкрд╕рдВрдж рд╣реИ: рдЕрдм рд╣рдо рддреАрди рдорд┐рдирдЯ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╕рд╣рдЬ рд░реВрдк рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЫреЛрдЯреЗ рд╕рдВрдЧреНрд░рд╣ (рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ 300,000 рдЖрдЗрдЯрдо) рдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдордп рдХрд┐рд╕реА рдмрдбрд╝реЗ рд╕рдВрдЧреНрд░рд╣ (рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдорд┐рд▓рд┐рдпрди рдЖрдЗрдЯрдо) рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╕реЗ рдХрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рддреБрд░рдВрдд рд╡рд┐рдкрд░реАрдд рд╕рдЪ рд╣реИред рдЬреАрд╡рди рдЗрд╕рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рдерд╛, рд╣реИ рдирд╛?

рдЕрдм рдлреЛрдХрд╕ рдХрд╛ рд░рд╛рдЬред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд JavaDoc рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдкрд╛рда рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ :
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛрдб рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрдо рд╣реИ: рд╕реЗрдЯ рдпрд╛ рд╕рдВрдЧреНрд░рд╣ред рдпрд╣ sizeрдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдпрджрд┐ рд╕реЗрдЯ рдореЗрдВ рдХрдо рддрддреНрд╡ рд╣реИрдВ, рддреЛ рд╕реЗрдЯ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ рдпрд╣ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╡рд░реНрддрдорд╛рди рддрддреНрд╡ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╣реИред рдпрджрд┐ рд╣рд╛рдБ, рддреЛ removeрдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЯ рд╕реЗ рддрддреНрд╡ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдпрджрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╕рдВрдЧреНрд░рд╣ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЫреЛрдЯрд╛ рд╣реИ, рддреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрдЧреНрд░рд╣ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛, рд╕реЗрдЯ removeрд╕реЗ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕реЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ ред
рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрдм рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ source.removeAll(removals):

  • рдпрджрд┐ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ removalsрдЫреЛрдЯрд╛ рд╣реИ source, рддреЛ рд╡рд┐рдзрд┐ рдХреЛ рдЕрдВрджрд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ removeрд╣реИ HashSet, рдФрд░ рдпрд╣ рдмрд╣реБрдд рддреЗрдЬ рд╣реИ;
  • рдпрджрд┐ рд╕рдВрдЧреНрд░рд╣ removalsрдЖрдХрд╛рд░ рд╕реЗ рдмрдбрд╝рд╛ рдпрд╛ рдмрд░рд╛рдмрд░ рд╣реИ source, рддреЛ рдПрдХ рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ removals.containsрдЬреЛ рдмрд╣реБрдд рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ArrayListред

JDK 8 рдореЗрдВ, рдХреЛрдб рдХреЗ рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ:

public boolean removeAll(Collection<?> c) {
    Objects.requireNonNull(c);
    boolean modified = false;

    if (size() > c.size()) {
        for (Iterator<?> i = c.iterator(); i.hasNext(); )
            modified |= remove(i.next());
    } else {
        for (Iterator<?> i = iterator(); i.hasNext(); ) {
            if (c.contains(i.next())) {
                i.remove();
                modified = true;
            }
        }
    }
    return modified;
}

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреЗрдбреАрдХреЗ рдиреЗ рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд░рд╛рдм рддрд░реАрдХрд╛ рдЪреБрдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рд╡рд╛рдбреЙрдХ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рдкреАрдЫреЗ рдирд╣реАрдВ рд╣рдЯрддрд╛ рд╣реИред

рдпрд╛ рд╣реИ?

рд▓реЛрдЧ рд░реЛрдорди рдпреЗрд▓рд┐рдЬрд╝рд╛рд░реЛрд╡ рдХреЗ рдЯреНрд╡реАрдЯ рдкрд░ рднрд╛рдЧ рдЧрдП, рдФрд░ рдЬреЗрдХрд╛ рдХреЛрдЬрд╝рд▓реЛрд╡ рдиреЗ рдЬреЗрдбреАрдХреЗ 15 рдкрд░ рдПрдХ рд╕рдорд╛рди рдмрдЧ рдХреЛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдЯреБрдЕрд░реНрдЯ рдорд╛рд░реНрдХреНрд╕ рдХреЗ рд╕рд╛рде рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ред

рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж, рд╕реНрдЯреБрдЕрд░реНрдЯ рдорд╛рд░реНрдХреНрд╕ рдиреЗ рдЦреБрдж рдХреЛ рдзрд╛рдЧреЗ рдореЗрдВ рдмрд╛рдВрдз рд▓рд┐рдпрд╛ рдФрд░ рдкреБрд╖реНрдЯрд┐ рдХреА рдХрд┐ рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдирд┐рдкрдЯ рд░рд╣рд╛ рд╣реИ:


рддреЛ рд╕реБрд░рдВрдЧ рдХреЗ рдЕрдВрдд рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рд╣реИред рдпрджрд┐ рдЖрдк рдЬрд╛рд╡рд╛ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗред

рдЬрд╛рдБрдЪ - рдкрд░рд┐рдгрд╛рдо


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

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



рддреЛ, рдмрдЪреНрдЪреЛрдВ, рдЖрдЬ рд╣рдордиреЗ рдХреБрдЫ рдирдпрд╛ рд╕реАрдЦрд╛!

рднреЛрдЬ рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рд░реЛрдорди рдПрд▓рд┐рд╕реИрд░реЛрд╡ рдХреА рдХреБрдЫ рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рдмрдЧ рдХреЛ рдкреНрд░рдХрд╛рд╢ рдореЗрдВ рд▓рд╛рдиреЗ рдореЗрдВ рдорджрдж рдХреАред рдмреЗрд╢рдХ, рдЗрди рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХрд╛ рдмрдЧ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯрд┐рди рдкреНрд▓реЗрдЯреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИ:


JPoint, , 2020 . , , , .

All Articles