- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ TextStatistics, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡΡΠ΅Π΅ ΡΠ΅ΠΊΡΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ·ΡΠΊΠ°Ρ
.
- ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ:
TextStatistics <Π»ΠΎΠΊΠ°Π»Ρ ΡΠ΅ΠΊΡΡΠ°> <Π»ΠΎΠΊΠ°Π»Ρ Π²ΡΠ²ΠΎΠ΄Π°> <ΡΠ°ΠΉΠ» Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ> <ΡΠ°ΠΉΠ» ΠΎΡΡΠ΅ΡΠ°> - ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ ΡΠ΅ΠΊΡΡΠ°: Π²ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ Π²ΡΠ²ΠΎΠ΄Π°: ΡΡΡΡΠΊΠ°Ρ ΠΈ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠ°Ρ.
- Π€Π°ΠΉΠ»Ρ ΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ UTF-8.
- ΠΠΎΠ΄ΡΡΠ΅Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅ΡΡΠΈΡΡ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠΌ:
- ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ
- ΡΡΡΠΎΠΊΠΈ
- ΡΠ»ΠΎΠ²Π°
- ΡΠΈΡΠ»Π°
- Π΄Π΅Π½ΡΠ³ΠΈ
- Π΄Π°ΡΡ
- ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°:
- ΡΠΈΡΠ»ΠΎ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ
- ΡΠΈΡΠ»ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ
- ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
- ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
- ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π°
- ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π°
- ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅/Π΄Π»ΠΈΠ½Π°
- ΠΡΡΠ΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ HTML.
- ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΡΠ΅ΡΠ°:
- ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ:
ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ»: input.txt
Π‘Π²ΠΎΠ΄Π½Π°Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°
Π§ΠΈΡΠ»ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ: 38
Π§ΠΈΡΠ»ΠΎ ΡΡΡΠΎΠΊ: 41
β¦
Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΏΠΎ ΡΠ»ΠΎΠ²Π°ΠΌ
Π§ΠΈΡΠ»ΠΎ ΡΠ»ΠΎΠ²: 153 (95 ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ
)
ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ: HTML
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ: ΡΠ·ΡΠΊΠ°Ρ
ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° ΡΠ»ΠΎΠ²Π°: 1 (ΠΈ)
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° ΡΠ»ΠΎΠ²Π°: 14 (ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅)
Π‘ΡΠ΅Π΄Π½ΡΡ Π΄Π»ΠΈΠ½Π° ΡΠ»ΠΎΠ²Π°: 10
Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΏΠΎ β¦- ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π°:
- ΠΠ΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
- Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
- ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π»ΠΈΡΠ°ΠΌΠΈ.
- Π£ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π»ΠΈΡΠ° (
Person) ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΠΈΠΌΡ, ΡΠ°ΠΌΠΈΠ»ΠΈΡ ΠΈ Π½ΠΎΠΌΠ΅Ρ ΠΏΠ°ΡΠΏΠΎΡΡΠ°. - ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π»ΠΈΡΠ° (
LocalPerson) Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. - Π£Π΄Π°Π»Π΅Π½Π½ΡΠ΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π»ΠΈΡΠ° (
RemotePerson) Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². - ΠΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π»ΠΈΡΠ° ΠΏΠΎ Π½ΠΎΠΌΠ΅ΡΡ ΠΏΠ°ΡΠΏΠΎΡΡΠ°, Ρ Π²ΡΠ±ΠΎΡΠΎΠΌ ΡΠΈΠΏΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π»ΠΈΡΠ°.
- ΠΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠΈ ΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌ Π»ΠΈΡΠ΅ ΠΏΠΎ Π΅Π³ΠΎ Π΄Π°Π½Π½ΡΠΌ.
- Π£ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π»ΠΈΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅ΡΠΎΠ², ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π΄ΠΎΡΡΡΠΏ.
- Π‘ΡΠ΅ΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π»ΠΈΡΠ° Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ subId Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΈΠΉ ΡΡΠ΅Ρ Ρ id Π²ΠΈΠ΄Π° passport:subId.
- ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠΎ ΡΡΠ΅ΡΠΎΠΌ Π² Π±Π°Π½ΠΊΠ΅ (ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π±Π°Π»Π°Π½ΡΠ°), Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΠΈΠ΄Π½Ρ Π²ΡΠ΅ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ RemotePerson, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΌ LocalPerson, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
- ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΡΠ΅ΡΠ°Ρ
, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ΅ΡΠ΅Π·
RemotePersonΠ΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠ°Π·Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ, Π° ΠΏΡΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ΅ΡΠ΅Π·LocalPersonβ ΡΠΎΠ»ΡΠΊΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎLocalPerson.
- Π£ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π»ΠΈΡΠ° (
- ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΠ΅ΡΡΡ, ΠΏΡΠΎΠ²Π΅ΡΡΡΡΠ΅Π΅ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
- Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΠ΅Π΅ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌ Π»ΠΈΡΠ°ΠΌΠΈ.
- ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ: ΠΈΠΌΡ, ΡΠ°ΠΌΠΈΠ»ΠΈΡ, Π½ΠΎΠΌΠ΅Ρ ΠΏΠ°ΡΠΏΠΎΡΡΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π»ΠΈΡΠ°, Π½ΠΎΠΌΠ΅Ρ ΡΡΠ΅ΡΠ°, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠΌΠΌΡ ΡΡΠ΅ΡΠ°.
- ΠΡΠ»ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌ Π»ΠΈΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, ΡΠΎ ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Ρ Π΅Π³ΠΎ Π΄Π°Π½Π½ΡΠ΅.
- ΠΡΠ»ΠΈ Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π»ΠΈΡΠ° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ΅Ρ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ, ΡΠΎ ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Ρ Π½ΡΠ»Π΅Π²ΡΠΌ Π±Π°Π»Π°Π½ΡΠΎΠΌ.
- ΠΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΠΌΠΌΡ ΡΡΠ΅ΡΠ°, Π½ΠΎΠ²ΡΠΉ Π±Π°Π»Π°Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ.
-
Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΠΎ UDP.
-
ΠΠ»Π°ΡΡ
HelloUDPClientΠ΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ.- ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ:
- ΠΈΠΌΡ ΠΈΠ»ΠΈ ip-Π°Π΄ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°ΠΏΡΡΠ΅Π½ ΡΠ΅ΡΠ²Π΅Ρ;
- Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΡΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΡΡΠ»Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ;
- ΠΏΡΠ΅ΡΠΈΠΊΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² (ΡΡΡΠΎΠΊΠ°);
- ΡΠΈΡΠ»ΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π·Π°ΠΏΡΠΎΡΠΎΠ²;
- ΡΠΈΡΠ»ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅.
- ΠΠ°ΠΏΡΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΡΡΠ»Π°ΡΡΡΡ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΆΠΈΠ΄Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠ°ΠΌ Π·Π°ΠΏΡΠΎΡ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ. ΠΡΠ»ΠΈ Π·Π°ΠΏΡΠΎΡ Π½Π΅ Π±ΡΠ» ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π°ΡΡ Π΅Π³ΠΎ Π·Π°Π½ΠΎΠ³ΠΎ.
- ΠΠ°ΠΏΡΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎ ΡΡ
Π΅ΠΌΠ΅
<ΠΏΡΠ΅ΡΠΈΠΊΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²><Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠ°>_<Π½ΠΎΠΌΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠ° Π² ΠΏΠΎΡΠΎΠΊΠ΅>.
- ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ:
-
ΠΠ»Π°ΡΡ
HelloUDPServerΠ΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π°Π΄Π°Π½ΠΈΡ, ΠΎΡΡΡΠ»Π°Π΅ΠΌΡΠ΅ ΠΊΠ»Π°ΡΡΠΎΠΌHelloUDPClientΠΈ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π½Π° Π½ΠΈΡ .- ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ:
- Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΡΡΠ°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ Π·Π°ΠΏΡΠΎΡΡ;
- ΡΠΈΡΠ»ΠΎ ΡΠ°Π±ΠΎΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ.
- ΠΡΠ²Π΅ΡΠΎΠΌ Π½Π° Π·Π°ΠΏΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ
Hello, <ΡΠ΅ΠΊΡΡ Π·Π°ΠΏΡΠΎΡΠ°>. - ΠΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ ΡΡΠΏΠ΅Π²Π°Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ, ΠΏΡΠΈΠ΅ΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½.
- ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ:
-
ΠΠΎΠ½ΡΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅ΠΉ.
- ΠΠ»ΠΈΠ΅Π½Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ².
- Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΡ
ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΉ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠ΅ΡΠ΅Π·
Selector.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΏΡΠΎΡΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
- ΠΊΠ»ΠΈΠ΅Π½Ρ:
info.kgeorgiy.java.advanced.hello client <ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°> - ΡΠ΅ΡΠ²Π΅Ρ:
info.kgeorgiy.java.advanced.hello server <ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°>
- ΠΊΠ»ΠΈΠ΅Π½Ρ:
- ΡΠ»ΠΎΠΆΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
- ΠΊΠ»ΠΈΠ΅Π½Ρ:
info.kgeorgiy.java.advanced.hello client-i18n <ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°> - ΡΠ΅ΡΠ²Π΅Ρ:
info.kgeorgiy.java.advanced.hello server-i18n <ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°>
- ΠΊΠ»ΠΈΠ΅Π½Ρ:
1. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ WebCrawler, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΡΡ ΡΠ°ΠΉΡΡ.
- ΠΠ»Π°ΡΡ WebCrawler Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ:
public WebCrawler(Downloader downloader, int downloaders, int extractors, int perHost)-
downloaderΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΠΈΠ· Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ;downloadersβ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΡ ΡΡΡΠ°Π½ΠΈΡ;extractorsβ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΡΡΠ°Π½ΠΈΡ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ ΡΡΡΠ»ΠΊΠΈ;perHostβ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΡΡΠ°Π½ΠΈΡ, ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΡ c ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ ΠΎΡΡΠ°. ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π½ΠΈΡ Ρ ΠΎΡΡΠ° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄getHostΠΊΠ»Π°ΡΡΠ°URLUtilsΠΈΠ· ΡΠ΅ΡΡΠΎΠ².
- ΠΠ»Π°ΡΡ
WebCrawlerΠ΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡCrawler:
public interface Crawler extends AutoCloseable {
List<String> download(String url, int depth) throws IOException;
void close();
}-
- ΠΠ΅ΡΠΎΠ΄
downloadΠ΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ URL Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π³Π»ΡΠ±ΠΈΠ½Ρ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π³Π»ΡΠ±ΠΈΠ½Π° ΡΠ°Π²Π½Π° 1, ΡΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·Π°Π½Π½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ°. ΠΡΠ»ΠΈ Π³Π»ΡΠ±ΠΈΠ½Π° ΡΠ°Π²Π½Π° 2, ΡΠΎ ΡΠΊΠ°Π·Π°Π½Π½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° ΠΈ ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ ΡΠ°ΠΉΠ»Ρ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½Π° ΡΡΡΠ»Π°Π΅ΡΡΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ . - ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΠ°Π½ΠΈΡ (ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΎΠΊ) Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ, Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π½Π° ΡΠΈΡΠ»ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΡ ΡΡΡΠ°Π½ΠΈΡ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ ΠΎΡΡΠ°) ΠΈ ΡΡΡΠ°Π½ΠΈΡ, Ρ ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΡΡΡΠ»ΠΊΠΈ.
- ΠΠ»Ρ ΡΠ°ΡΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ²Π°Π½ΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΎ downloaders + extractors Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ².
- ΠΠ°Π³ΡΡΠΆΠ°ΡΡ ΠΈ/ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΡΡΡΠ»ΠΊΠΈ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ ΠΎΠ΄Π° (download) Π·Π°ΠΏΡΠ΅ΡΠ°Π΅ΡΡΡ.
- ΠΠ΅ΡΠΎΠ΄
closeΠ΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π²Π΅ΡΡΠ°ΡΡ Π²ΡΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ.
- ΠΠ΅ΡΠΎΠ΄
- ΠΠ»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ
Downloader, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΠΏΠ΅ΡΠ²ΡΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°.
public interface Downloader {
public Document download(final String url) throws IOException;
}-
- ΠΠ΅ΡΠΎΠ΄
downloadΠ·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΏΠΎ Π΅Π³ΠΎ Π°Π΄ΡΠ΅ΡΡ URL. - ΠΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΡΠ»ΠΊΠΈ ΠΏΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅:
- ΠΠ΅ΡΠΎΠ΄
public interface Document {
List<String> extractLinks() throws IOException;
}-
- Π‘ΡΡΠ»ΠΊΠΈ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΌ ΡΠ²Π»ΡΡΡΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΌΠΈ ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΡ
Π΅ΠΌΡ
httpΠΈΠ»ΠΈhttps.
- Π‘ΡΡΠ»ΠΊΠΈ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΌ ΡΠ²Π»ΡΡΡΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΌΠΈ ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΡ
Π΅ΠΌΡ
- ΠΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅ΡΠΎΠ΄
main, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΎΠ±Ρ ΠΎΠ΄ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ- ΠΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ°:
WebCrawler url [depth [downloads [extractors [perHost]]]]
-
- ΠΠ»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
CachingDownloaderΠΈΠ· ΡΠ΅ΡΡΠΎΠ².
- ΠΠ»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
2. ΠΠ΅ΡΡΠΈΠΈ Π·Π°Π΄Π°Π½ΠΈΡ
- ΠΡΠΎΡΡΠ°Ρ β ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΡΠΈΡΠ»ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π·Π°ΠΊΠ°ΡΠ΅ΠΊ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ
ΠΎΡΡΠ° (
perHost >= downloaders). - ΠΠΎΠ»Π½Π°Ρ β ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠΈΡΡΠ²Π°ΡΡ Π²ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ.
- ΠΠΎΠ½ΡΡΠ½Π°Ρ β ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΉ ΠΎΠ±ΠΎΠ΄ Π² ΡΠΈΡΠΈΠ½Ρ.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅:
- ΠΏΡΠΎΡΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
info.kgeorgiy.java.advanced.crawler easy <ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°> - ΡΠ»ΠΎΠΆΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
info.kgeorgiy.java.advanced.crawler hard <ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°>
- ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠ»Π°ΡΡ
ParallelMapperImpl, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡParallelMapper.
public interface ParallelMapper extends AutoCloseable {
<T, R> List<R> run(
Function<? super T, ? extends R> f,
List<? extends T> args
) throws InterruptedException;
@Override
void close() throws InterruptedException;
}-
- ΠΠ΅ΡΠΎΠ΄
runΠ΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π²ΡΡΠΈΡΠ»ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ f Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² (args). - ΠΠ΅ΡΠΎΠ΄
closeΠ΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ. - ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
ParallelMapperImpl(int threads)ΡΠΎΠ·Π΄Π°Π΅ΡthreadsΡΠ°Π±ΠΎΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΡΠ°ΡΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ²Π°Π½ΠΈΡ. - Π ΠΎΠ΄Π½ΠΎΠΌΡ
ParallelMapperImplΠΌΠΎΠ³ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ². - ΠΠ°Π΄Π°Π½ΠΈΡ Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ.
- Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΉ.
- ΠΠ΅ΡΠΎΠ΄
- ΠΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ
IterativeParallelismΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΌΠΎΠ³ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡParallelMapper.- ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
IterativeParallelism(ParallelMapper) - ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄Π΅Π»ΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π°
threadsΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈParallelMapper. - ΠΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΈ ΡΠ°Π±ΠΎΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ
ΠΎΠ΄ΠΈΠ½
ParallelMapper. - ΠΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ
ParallelMapperΡΠ°ΠΌIterativeParallelismΠ½ΠΎΠ²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½.
- ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΏΡΠΎΡΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
info.kgeorgiy.java.advanced.mapper scalar <ParallelMapperImpl>,<IterativeParallelism> - ΡΠ»ΠΎΠΆΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
info.kgeorgiy.java.advanced.mapper list <ParallelMapperImpl>,<IterativeParallelism>
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅! ΠΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ»Π½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ParallelMapperImpl ΠΈ IterativeParallelism
Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π·Π°ΠΏΡΡΠ°Ρ ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ².
- Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ
IterativeParallelism, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΏΠΈΡΠΊΠΈ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ². - Π ΠΏΡΠΎΡΡΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
minimum(threads, list, comparator)β ΠΏΠ΅ΡΠ²ΡΠΉ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ;maximum(threads, list, comparator)β ΠΏΠ΅ΡΠ²ΡΠΉ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ;all(threads, list, predicate)β ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, ΡΡΠΎ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ° ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΡ;any(threads, list, predicate)β ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ°, ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠΈΠΉ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΡ.
- Π ΡΠ»ΠΎΠΆΠ½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
filter(threads, list, predicate)β Π²Π΅ΡΠ½ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΡ;map(threads, list, function)β Π²Π΅ΡΠ½ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ;join(threads, list)β ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠΈΡΠΊΠ°.
- ΠΠΎ Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
threadsβ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π½Π΅ Π²Π΅Π»ΠΈΠΊΠΎ. - ΠΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡΡ, ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΡΡΡΡΠΎ.
- ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°Π΄Π°Π½ΠΈΡ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Concurrency Utilities.
- Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊ Π·Π°Π΄Π°Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΠΌΠΎΠ½ΠΎΠΈΠ΄Ρ.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΏΡΠΎΡΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
info.kgeorgiy.java.advanced.concurrent scalar <ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°> - ΡΠ»ΠΎΠΆΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
info.kgeorgiy.java.advanced.concurrent list <ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°>
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅
.jar-ΡΠ°ΠΉΠ», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉImplementorΠΈ ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ.
- Π‘ΠΎΠ·Π΄Π°Π½Π½ΡΠΉ
.jar-ΡΠ°ΠΉΠ»Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉjava -jar. - ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ
.jar-ΡΠ°ΠΉΠ»Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ΅ ΠΆΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΡΠΎ ΠΈ ΠΊΠ»Π°ΡΡImplementor.
- ΠΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠΉΡΠ΅
ImplemetorΡΠ°ΠΊ, ΡΡΠΎ Π±Ρ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ-jar ΠΈΠΌΡ-ΠΊΠ»Π°ΡΡΠ° ΡΠ°ΠΉΠ».jarΠΎΠ½ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π».jar-ΡΠ°ΠΉΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ° (ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°). - ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΠΊΡΠΎΠΌΠ΅ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠ°ΠΊ ΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ²Π»Π΅Π½Ρ:
ΡΠΊΡΠΈΠΏΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΠΎΠ³ΠΎ
.jar-ΡΠ°ΠΉΠ»Π°, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅, ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°; Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ .jar-ΡΠ°ΠΉΠ». - ΠΠ°Π½Π½ΠΎΠ΅ Π΄ΠΎΠΌΠ°ΡΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΡΠ΄Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ. ΠΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ Π΄ΠΎΠΌΠ°ΡΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΠ΄Π°ΡΡ Π±ΡΠ΄Π΅Ρ Π½Π΅Π»ΡΠ·Ρ.
- Π‘Π»ΠΎΠΆΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ. Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΡΠΈΠ·ΠΎΠ²Π°Π½ΠΎ.
ΠΠ»Π°ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
JarImpler
- ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΡΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ
ImplementorΠΈ ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌJavadoc.
- ΠΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Ρ Π²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ Π²ΡΠ΅ ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π·Π°ΠΊΡΡΡΡΠ΅ (
private). - ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π±Π΅Π· ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ.
- Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΊΠ»Π°ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
- ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΠΊΡΠΎΠΌΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠ°ΠΊ ΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ²Π»Π΅Π½Ρ:
- ΡΠΊΡΠΈΠΏΡ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ;
- ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
- ΠΠ°Π½Π½ΠΎΠ΅ Π΄ΠΎΠΌΠ°ΡΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΡΠ΄Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ. ΠΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ Π΄ΠΎΠΌΠ°ΡΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΠ΄Π°ΡΡ Π±ΡΠ΄Π΅Ρ Π½Π΅Π»ΡΠ·Ρ.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΏΡΠΎΡΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
info.kgeorgiy.java.advanced.implementor jar-interface <ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°> - ΡΠ»ΠΎΠΆΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
info.kgeorgiy.java.advanced.implementor jar-class <ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°>
- Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ
Implementor, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ².
- ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ: ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°/ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.
- Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ°Π±ΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ java-ΠΊΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ° Ρ ΡΡΡΡΠΈΠΊΡΠΎΠΌ
Impl, ΡΠ°ΡΡΠΈΡΡΡΡΠΈΠΉ (ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ) ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ (ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ). - Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ.
- Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌ.
- ΠΠ΅ΡΠΎΠ΄Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
- Π Π·Π°Π΄Π°Π½ΠΈΠΈ Π²ΡΠ΄Π΅Π»ΡΡΡΡΡ ΡΡΠΈ ΡΡΠΎΠ²Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ:
- ΠΡΠΎΡΡΠΎΠΉ β
ImplementorΠ΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΌΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ (Π½ΠΎ Π½Π΅ ΠΊΠ»Π°ΡΡΡ). ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° generics Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ. - Π‘Π»ΠΎΠΆΠ½ΡΠΉ β
ImplementorΠ΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΌΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° generics Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ. - ΠΠΎΠ½ΡΡΠ½ΡΠΉ β
ImplementorΠ΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΌΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ generic-ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΈΠΏΠΎΠ² ΠΈ Π½Π΅ ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡUncheckedWarning.
ΠΠ»Π°ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
Impler
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΏΡΠΎΡΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
info.kgeorgiy.java.advanced.implementor interface <ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°> - ΡΠ»ΠΎΠΆΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
info.kgeorgiy.java.advanced.implementor class <ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°>
- Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ
StudentDB, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠΈΠΉ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΡΡΡΠ΄Π΅Π½ΡΠΎΠ².
- ΠΠ»Π°ΡΡ
StudentDBΠ΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡStudentQuery(ΠΏΡΠΎΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ) ΠΈΠ»ΠΈStudentGroupQuery(ΡΠ»ΠΎΠΆΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ). - ΠΠ°ΠΆΠ΄ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· ΡΠΎΠ²Π½ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΡΠΈ ΡΡΠΎΠΌ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π½Π°Π΄ΠΎ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ.
- ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π°:
- ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ².
- ΠΠ·Π±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π°.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΏΡΠΎΡΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
info.kgeorgiy.java.advanced.student StudentQuery <ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°> - ΡΠ»ΠΎΠΆΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
info.kgeorgiy.java.advanced.student StudentGroupQuery <ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°>
- Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ ArraySet, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠ΅ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ΅ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ.
- ΠΠ»Π°ΡΡ
ArraySetΠ΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡSortedSet(ΡΠΏΡΠΎΡΠ΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ) ΠΈΠ»ΠΈNavigableSet(ΡΡΠ»ΠΎΠΆΠ½Π΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ). - ΠΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ Π°ΡΠΈΠΌΠΏΡΠΎΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΡ.
- ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π°:
- ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ.
- ΠΠ·Π±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π°.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΏΡΠΎΡΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
info.kgeorgiy.java.advanced.arrayset SortedSet <ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°> - ΡΠ»ΠΎΠΆΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
info.kgeorgiy.java.advanced.arrayset NavigableSet <ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°>
-
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ Walk, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠΈΠΉ ΠΏΠΎΠ΄ΡΡΠ΅Ρ Ρ Π΅Ρ-ΡΡΠΌΠΌ ΡΠ°ΠΉΠ»ΠΎΠ².
-
Π€ΠΎΡΠΌΠ°Ρ Π·Π°ΠΏΡΡΠΊΠ°
java Walk <Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ»> <Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ»> -
ΠΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠ±ΠΎΠΉΡΠΈ.
-
ΠΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. Π€ΠΎΡΠΌΠ°Ρ ΡΡΡΠΎΠΊΠΈ:
<ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½Π°Ρ Ρ Π΅Ρ-ΡΡΠΌΠΌΠ°> <ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ> -
ΠΠ»Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° Ρ Π΅Ρ-ΡΡΠΌΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌ FNV.
-
ΠΡΠ»ΠΈ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ, ΡΠΊΠ°ΠΆΠΈΡΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΅Π³ΠΎ Ρ Π΅Ρ-ΡΡΠΌΠΌΡ 00000000.
-
ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² β
UTF-8. -
ΠΡΠ»ΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠ°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΡΡΡ Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ.
-
Π Π°Π·ΠΌΠ΅ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
-
ΠΡΠΈΠΌΠ΅Ρ
ΠΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ»
java/info/kgeorgiy/java/advanced/walk/samples/1 java/info/kgeorgiy/java/advanced/walk/samples/12 java/info/kgeorgiy/java/advanced/walk/samples/123 java/info/kgeorgiy/java/advanced/walk/samples/1234 java/info/kgeorgiy/java/advanced/walk/samples/1 java/info/kgeorgiy/java/advanced/walk/samples/binary java/info/kgeorgiy/java/advanced/walk/samples/no-such-fileΠΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ»
050c5d2e java/info/kgeorgiy/java/advanced/walk/samples/1 2076af58 java/info/kgeorgiy/java/advanced/walk/samples/12 72d607bb java/info/kgeorgiy/java/advanced/walk/samples/123 81ee2b55 java/info/kgeorgiy/java/advanced/walk/samples/1234 050c5d2e java/info/kgeorgiy/java/advanced/walk/samples/1 8e8881c5 java/info/kgeorgiy/java/advanced/walk/samples/binary 00000000 java/info/kgeorgiy/java/advanced/walk/samples/no-such-file
-
-
Π£ΡΠ»ΠΎΠΆΠ½Π΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ:
-
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ
RecursiveWalk, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠΈΠΉ ΠΏΠΎΠ΄ΡΡΠ΅Ρ Ρ Π΅Ρ-ΡΡΠΌΠΌ ΡΠ°ΠΉΠ»ΠΎΠ² Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡ -
ΠΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠ±ΠΎΠΉΡΠΈ. ΠΠ±Ρ ΠΎΠ΄ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ.
-
ΠΡΠΈΠΌΠ΅Ρ
ΠΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ»
java/info/kgeorgiy/java/advanced/walk/samples/binary java/info/kgeorgiy/java/advanced/walk/samplesΠΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ»
8e8881c5 java/info/kgeorgiy/java/advanced/walk/samples/binary 050c5d2e java/info/kgeorgiy/java/advanced/walk/samples/1 2076af58 java/info/kgeorgiy/java/advanced/walk/samples/12 72d607bb java/info/kgeorgiy/java/advanced/walk/samples/123 81ee2b55 java/info/kgeorgiy/java/advanced/walk/samples/1234 8e8881c5 java/info/kgeorgiy/java/advanced/walk/samples/binary
-
-
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π°:
- ΠΠΈΠ·Π°ΠΉΠ½ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ.
- ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ Π΄Π°ΠΆΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ.
- ΠΠΎΡΡΠ΅ΠΊΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ Π²Π²ΠΎΠ΄ΠΎΠΌ-Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ.
- ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΡΠ΅ΡΠΊΠΈ ΡΠ΅ΡΡΡΡΠΎΠ².
-
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΡ.
- ΠΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π°Π΄Π°Π½ΠΈΡ.
- ΠΠ΅ΡΡ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅
ru.ifmo.rain.ΡΠ°ΠΌΠΈΠ»ΠΈΡ.walk.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
- Π‘ΠΊΠ°ΡΠ°ΠΉΡΠ΅
- ΡΠ΅ΡΡΡ
- ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊ Π½ΠΈΠΌ:
- ΠΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΌΠ°ΡΠ½Π΅Π³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ
- ΠΡΠΎΡΠ΅ΡΡΠΈΡΡΠΉΡΠ΅ Π΄ΠΎΠΌΠ°ΡΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅
- Π’Π΅ΠΊΡΡΠ°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π°:
- ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π²ΡΠ΅ ΡΠΊΠ°ΡΠ°Π½Π½ΡΠ΅
.jarΡΠ°ΠΉΠ»Ρ; - ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅;
- Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΡΡΡ.
- ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π²ΡΠ΅ ΡΠΊΠ°ΡΠ°Π½Π½ΡΠ΅
- ΠΏΡΠΎΡΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
java -cp . -p . -m info.kgeorgiy.java.advanced.walk Walk <ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°> - ΡΠ»ΠΎΠΆΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
java -cp . -p . -m info.kgeorgiy.java.advanced.walk RecursiveWalk <ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°>
- Π’Π΅ΠΊΡΡΠ°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π°: