рдПрдХ рдЫреЛрдЯрд╛ рдЕрдиреБрдХреВрд▓рди

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдореЗрд░реЗ рд╕рд╛рде рдПрдХ рдЕрдиреБрдХреВрд▓рди (рд╣реИрд▓реЛ рд╕реНрдЯреИрдирд┐рд╕реНрд▓рд╛рд╡ ) рдХреА рдХрд╣рд╛рдиреА рд╕рд╛рдЭрд╛ рдХреА, рдЬреЛ рдореБрдЭреЗ рдмрд╣реБрдд рдордЬрд╝реЗрджрд╛рд░ рд▓рдЧреА ред

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

for (A a : arrayListA) { // do something for (B b : arrayListB) { // do something for (C c : arrayListC) { // do something } } } 

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

рдЫрд╡рд┐

рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХреЗ рд╕рд╛рде, рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдиреЗ рд╡рд┐рдзрд┐ рд╕рдордп рдХрд╛ рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд▓рд┐рдпрд╛ред

рд╕рдорд╕реНрдпрд╛ рд▓реВрдк рдХреЗ рд▓рд┐рдП рдереАред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╕рдВрдХрд▓рдирдХрд░реНрддрд╛ рдХреЛрдб рдХреЗ рд▓рд┐рдП рд▓реВрдк рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ:

 for (Iterator<A> i = arrayListA.iterator(); i.hasNext();) { a = i.next(); } //    iterator() ArrayList public Iterator<E> iterator() { return new Itr(); } //   .     private class Itr implements Iterator<E> { int cursor = 0; int lastRet = -1; int expectedModCount = modCount; } 

рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдИ рдиреЗрд╕реНрдЯреЗрдб рд▓реВрдк рд╣реИрдВ, рддреЛ рдиреЗрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдирд┐рдореНрдирддрдо рд╕реНрддрд░ рдкрд░ рд╢реЙрд░реНрдЯ рд▓реВрдкреНрд╕ рдХреЗ рд╕рд╛рде, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд▓реВрдкреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд┐рд░реНрдл рдПрдХ рд▓реВрдк рд╣рдЬрд╛рд░реЛрдВ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдмрдирд╛ рджреЗрдЧрд╛, рдФрд░ рдпрджрд┐ рд╡рд┐рдзрд┐ рд▓рдЧрд╛рддрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрд▓реЗрдХреНрдЯрд░ рд╣рдореЗрд╢рд╛ рдЖрдЧ рд▓рдЧрд╛рдПрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП - рдЕрдЧрд░ arrayListA.size () == 1000, arrayListB.size () == 100, arrayListC.size () == 10, рдПрдХ рд▓реВрдк рдореЗрдВ рд▓рдЧрднрдЧ 100 рд╣рдЬрд╛рд░ рдЗрдЯреНрд░реЗрдЯрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗ ...

рдпрд╣рд╛рдБ рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИ - рд╕реВрдЪрдХрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдкрд╣реБрдВрдЪ:

 for (int i = 0; i < arrayListA.size(); i++) { A a = arrayListA.get(i); } 


рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдиреЗ рдЧрд░реНрдо рд╡рд┐рдзрд┐ рдХреА рдЧрддрд┐ рдХреЛ 2 рдЧреБрдирд╛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред
рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдореБрдЦреНрдп рд░реВрдк рд╕реЗ ArrayList рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдВрднрд╡ рд╣реИред

рд╕рд╛рд╡рдзрд╛рди рдФрд░ рдирдпрд╛ рд╕рд╛рд▓ рдореБрдмрд╛рд░рдХ рд╣реЛ!

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


All Articles