π ΠΠ±Ρ
ΠΎΠ΄ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ Π² Java: Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ!
Π§Π°ΡΡΠΎ Π²ΠΈΠΆΡ, ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠΎ ΠΏΡΠΈΠ²ΡΡΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠ°ΡΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Ρ ΡΠΈΠΊΠ»ΠΎΠΌ for. Π‘Π΅Π³ΠΎΠ΄Π½Ρ Π½Π°ΠΏΠΎΠΌΠ½Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ Π² Java.
π§ 1. Foreach (Java 5+)
ΠΠΎΡΠΎΡΠΊΠΎ, ΡΡΠ½ΠΎ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π·Π°Π΄Π°Ρ:
π§ 2. ΠΠ΅ΡΠΎΠ΄ forEach (Java 8+)
ΠΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»Ρ:
β οΈ ΠΠ°ΠΆΠ½ΠΎ: Π½Π΅Π»ΡΠ·Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠ±Ρ ΠΎΠ΄Π°!
π§ 3. Stream API (Java 8+)
ΠΠ΄Π΅Π°Π»Π΅Π½ Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠ΅ΠΉ, ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ΠΎΠΌ ΠΈ Ρ.Π΄.:
π‘ Π§ΡΠΎ Π²ΡΠ±ΡΠ°ΡΡ?
* ΠΡΠΎΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅Π±ΠΎΡ? ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ ΡΠΈΠΊΠ» foreach.
* ΠΡΠΆΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ? collection.forEach().
* Π‘Π»ΠΎΠΆΠ½ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ? Π’ΠΎΠ»ΡΠΊΠΎ Stream API.
π ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ, ΡΡΠΎ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°!
π @BookJava
Π§Π°ΡΡΠΎ Π²ΠΈΠΆΡ, ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠΎ ΠΏΡΠΈΠ²ΡΡΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠ°ΡΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Ρ ΡΠΈΠΊΠ»ΠΎΠΌ for. Π‘Π΅Π³ΠΎΠ΄Π½Ρ Π½Π°ΠΏΠΎΠΌΠ½Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ Π² Java.
π§ 1. Foreach (Java 5+)
ΠΠΎΡΠΎΡΠΊΠΎ, ΡΡΠ½ΠΎ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π·Π°Π΄Π°Ρ:
for (String item : collection) {
// ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
}
π§ 2. ΠΠ΅ΡΠΎΠ΄ forEach (Java 8+)
ΠΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»Ρ:
collection.forEach(item -> {
// ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
});
β οΈ ΠΠ°ΠΆΠ½ΠΎ: Π½Π΅Π»ΡΠ·Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠ±Ρ ΠΎΠ΄Π°!
π§ 3. Stream API (Java 8+)
ΠΠ΄Π΅Π°Π»Π΅Π½ Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠ΅ΠΉ, ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ΠΎΠΌ ΠΈ Ρ.Π΄.:
collection.stream()
.filter(Objects::nonNull)
.map(String::toUpperCase)
.forEach(System.out::println);
π‘ Π§ΡΠΎ Π²ΡΠ±ΡΠ°ΡΡ?
* ΠΡΠΎΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅Π±ΠΎΡ? ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ ΡΠΈΠΊΠ» foreach.
* ΠΡΠΆΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ? collection.forEach().
* Π‘Π»ΠΎΠΆΠ½ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ? Π’ΠΎΠ»ΡΠΊΠΎ Stream API.
π ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ, ΡΡΠΎ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°!
π @BookJava