рдЖрдкрдиреЗ рдХреЛрдб рдХреА рд╕рдорд╛рди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдХрд┐рддрдиреА рдмрд╛рд░ рджреЗрдЦрд╛ рдпрд╛ рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдПрдХ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрдЧреНрд░рд╣ рдХреА рдЧрдгрдирд╛ рдпрд╛ рдЫрдБрдЯрд╛рдИ (рдХреБрдЫ рд╣реЗрд░рдлреЗрд░) рдХрд░реЗрдВред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рд╣рд░ рджрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рд╣реЛрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рд╡рд┐рднрд┐рдиреНрди рдЖрдИрдбреАрдИ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдЖрдк рд╕реНрдирд┐рдкреЗрдЯ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рднреА, рдРрд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХреЛрдб рдХреЛ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рдХрдВрдкреНрдпреВрдЯрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреНрд╡рд╛рд░рд╛ рдзрд╛рд░рдгрд╛ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред
рдпрд╣рд╛рдБ
рд▓реИрдВрдмрдбреИрдЬ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛ рдХреА рд╕реНрдерд┐рд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рддрдХрдиреАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдЗрд╕рдХреА рдкрдардиреАрдпрддрд╛ рдХреЛ рдмрдврд╝рд╛рдирд╛ рд╣реИред рдмрд╛рдж рд╡рд╛рд▓рд╛ рддрдереНрдп рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдереИрддрд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╛ рдПрдХ рдлрд╛рдпрджрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдХреЛрдб рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдореЗрдВ рдХрд╛рдлреА рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИред
рд▓реИрдореНрдмреНрдбрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рд╕рдмрд╕реЗ рдХрдо рдЙрдореНрд░ рдХреЗ рдЦрд░реАрджрд╛рд░ рдХреА рдЙрдореНрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ, рдЬрд┐рд╕рдиреЗ 50'000 рд╕реЗ рдЕрдзрд┐рдХ рдХреА рдЦрд░реАрджрд╛рд░реА рдХреАред
рдХреНрд▓рд╛рд╕рд┐рдХ (рдкреБрдирд░рд╛рд╡реГрддреНрдд) рддрд░реАрдХрд╛:
int age = Integer.MAX_VALUE;
for (Sale sale : sales) {
if (sale.getCost() > 50000.00) {
int buyerAge = sale.getBuyer().getAge();
if (buyerAge < age)
age = buyerAge;
}
}
рд▓рдореНрдмреЛрджрд░ рд╡рд┐рдзрд┐:
int age = min(forEach( select (sales, having(
on(Sale. class ).getCost(), greaterThan(50000.00)).getBuyer()))),
on(Person. class ).getAge());
рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рд╕реЗ, рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛
рдбреАрдПрд╕рдПрд▓ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдбреЛрдореЗрди рдЬрд╛рд╡рд╛ рд╕рдВрдЧреНрд░рд╣ рд╣реИрдВ, рдФрд░ рднрд╛рд╖рд╛ рдирд┐рд░реНрдорд╛рдг рд▓реИрдореНрдмрдбрд╛ рдЬреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдЖрдпрд╛рддрд┐рдд рддрд░реАрдХреЗ рд╣реИрдВред
рддреЛ рд▓рд╛рдореНрдмрд╛рдЬ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ?
рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рд╕реВрдЪреА рд▓рдЧрднрдЧ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:
- рджрд┐рдП рдЧрдП рд╢рд░реНрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рддрддреНрд╡реЛрдВ рдХреЛ рдЫрд╛рдирдирд╛;
- рджрд┐рдП рдЧрдП рдирд┐рдпрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди;
- рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛;
- рдЧреБрдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЫрдБрдЯрд╛рдИ рддрддреНрд╡реЛрдВ;
- рдЧреБрдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдиреБрдХреНрд░рдордг рддрддреНрд╡;
- рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдЧреБрдгреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдореВрд╣реАрдХрд░рдг рддрддреНрд╡;
- рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛;
- рдПрдХрддреНрд░реАрдХрд░рдг (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрдХреНрд╖реЗрдкрдг) рддрддреНрд╡реЛрдВ рдпрд╛ рдЙрдирдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ;
- рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рдПрдХ рдФрд░ рд╕реЗрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рдкреНрд░рдХреНрд╖реЗрдкрдг (рдирдХрд▓), (рдбреЛрдореЗрди -> рдбреАрдЯреАрдУ);
- рддрддреНрд╡реЛрдВ рдпрд╛ рдЙрдирдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд╛ рд╕рдВрдШрдирдиред
рдпрд╣рд╛рдВ рдЖрдк
рдХреНрд▓реЛрдЬрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣рд╛рдВ рдЬрд╛рд╡рд╛ 7 рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ)ред
рдЙрджрд╛рд╣рд░рдг
рдЫрд╛рдирдиреЗ
List <Integer> biggerThan3 = filter(greaterThan(3), asList(1, 2, 3, 4, 5));
List <Person> oldFriends = filter(having(on(Person. class ).getAge(), greaterThan(30)), meAndMyFriends);
рдПрдХрддреНрд░реАрдХрд░рдг
int totalAge = sum(meAndMyFriends, on(Person. class ).getAge());
рдЧреБрдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
List <Integer> lengths = convert(strings, new PropertyExtractor( "length" ));
List <Integer> ages = extract(persons, on(Person. class ).getAge());
рдЕрдиреБрдХреНрд░рдордг
Map< String , Person> personsByName = index(persons, on(Person. class ).getFirstName());
рдЫрдВрдЯрд╛рдИ
List <Person> sorted = sort(persons, on(Person. class ).getAge());
рд╕рдореВрд╣
Group<Person> group = group(meAndMyFriends, by(on(Person. class ).getAge()));
Group<Person> group29aged = group.findGroup( "29" );
рдЙрддреНрдкрд╛рджрдХрддрд╛
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдкреНрд░рджрд░реНрд╢рди рд╣реИред рд▓реИрдореНрдмрдбрд╛рдЬреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдУрд╡рд░рд╣реЗрдб рдФрд╕рддрди 2.5 рдЧреБрдирд╛ [
* ] рд╣реИред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рджреБрдЦрдж рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдордп рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд▓реЗрддрд╛ рд╣реИ, рддреЛ рдХрд╛рдо рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдлрд╛рдпрджреЗ рдорд╛рдЗрдирд╕ рдУрд╡рд░рд╣реЗрдб'рдП рдХреЛ рдкрдЫрд╛рдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдкреБрдирд╢реНрдЪ
рдпрд╣ рд▓реЗрдЦ
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡рд┐рдХреА рд▓рд╛рдореНрдмрд╛рдЬреЗ рдХреЗ рдордирдорд╛рдиреЗ рднрд╛рдЧреЛрдВ рдХрд╛ рдореБрдлреНрдд рдЕрдиреБрд╡рд╛рдж рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╡рд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред