ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° list ΠΈ Π² ΠΊΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
ΠΠΎΡΠΎΠ²ΠΈΠΌΡΡ ΠΊ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ: ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΡ Π² Java
ΠΡΠ²Π΅ΠΆΠ°Π΅ΠΌ Π·Π½Π°Π½ΠΈΡ ΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΡ Π² Java ΠΈ Π·Π°ΠΊΡΠ΅ΠΏΠ»ΡΠ΅ΠΌ ΠΈΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅.
ΠΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π² Java β ΠΎΠ΄Π½Π° ΠΈΠ· Π»ΡΠ±ΠΈΠΌΡΡ ΡΠ΅ΠΌ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡΡ Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π»ΡΠ±ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΠ΅Π· Π½ΠΈΡ Π½Π΅ ΠΎΠ±Ρ ΠΎΠ΄ΡΡΡΡ ΠΈ ΡΠΊΠ·Π°ΠΌΠ΅Π½Ρ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Java Professional.
ΠΡΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ, ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² Java, ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
ΠΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ β ΡΡΠΎ Π½Π°Π±ΠΎΡΡ ΠΎΠ΄Π½ΠΎΡΠΎΠ΄Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠ°Π½ΠΈΡΡ Π² ΠΊΠ½ΠΈΠ³Π΅, ΡΠ±Π»ΠΎΠΊΠΈ Π² ΠΊΠΎΡΠ·ΠΈΠ½Π΅ ΠΈΠ»ΠΈ Π»ΡΠ΄ΠΈ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ Π² Java ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π² Java Collections Framework. Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΠΈ ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ: ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΠΏΠΎΠΈΡΠΊΠ°, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ.
Π€ΡΠ»ΡΡΠ΅ΠΊ-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ. ΠΡΠ±ΠΈΠΌΡΠΉ ΡΡΠ΅ΠΊ: Java + Angular, Π½ΠΎ Π² Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π³ΠΎΡΠΎΠ²Π° ΠΏΠΈΡΠ°ΡΡ Ρ ΠΎΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΠ΄Π°.
ΠΠ°Π»ΠΎΠΏΠΎΠΌ ΠΏΠΎ ΠΠ²ΡΠΎΠΏΠ°ΠΌ, ΠΈΠ»ΠΈ ΠΡΠ°ΡΠΊΠΎ ΠΎΠ± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ
Set β ΡΡΠΎ Π½Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ΅ΡΠΎΡΠ΅ΠΊ Ρ Π±ΠΎΡΠΎΠ½ΠΊΠ°ΠΌΠΈ Π΄Π»Ρ ΠΈΠ³ΡΡ Π² Π»ΠΎΡΠΎ: ΠΊΠ°ΠΆΠ΄ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΎΡ 1 Π΄ΠΎ 90 Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π² Π½ΡΠΌ ΡΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΠΈ Π·Π°ΡΠ°Π½Π΅Π΅ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π±ΠΎΡΠΎΠ½ΠΊΠΈ Π²ΡΠ½ΡΡ ΠΏΡΠΈ ΠΈΠ³ΡΠ΅.
List β ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π΅ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΡΠ±Π»ΠΈΠΊΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±ΡΠΊΠ² Π² ΡΠ»ΠΎΠ²Π΅: Π±ΡΠΊΠ²Ρ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΡΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΈΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²Π°ΠΆΠ΅Π½.
Queue β ΠΎΡΠ΅ΡΠ΅Π΄Ρ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Ρ Π²ΠΎΡΡ, Π° ΡΠ΄Π°Π»ΡΡΡ β ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· Π½Π°ΡΠ°Π»Π°. Π’Π°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ FIFO ( first in, first out) β Β«ΠΏΠ΅ΡΠ²ΡΠΌ ΠΏΡΠΈΡΡΠ» β ΠΏΠ΅ΡΠ²ΡΠΌ ΡΡΡΠ»Β». ΠΠ°ΠΌ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΠΏΠΎΠΌΠ½ΡΡ ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΡΠ΅ ΠΏΡΠΎΠ»Π΅Π·ΡΡ Π±Π΅Π· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅:
Π Π΅ΡΡ Π΅ΡΡΡ LIFO (last in, first out), ΡΠΎ Π΅ΡΡΡ Β«ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΏΡΠΈΡΡΠ» β ΠΏΠ΅ΡΠ²ΡΠΌ ΡΡΡΠ»Β». ΠΡΠΈΠΌΠ΅Ρ β ΡΡΠΎΠΏΠΊΠ° ΡΠ΅ΠΊΠ»Π°ΠΌΠ½ΡΡ Π±ΡΠΊΠ»Π΅ΡΠΎΠ² Π½Π° ΡΠ΅ΡΠ΅ΠΏΡΠ΅Π½Π΅ ΠΎΡΠ΅Π»Ρ: ΠΏΠ΅ΡΠ²ΡΠΌΠΈ Π·Π°Π±ΠΈΡΠ°ΡΡ ΡΠ°ΠΌΡΠ΅ Π²Π΅ΡΡ Π½ΠΈΠ΅ (ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ). Π‘ΡΡΡΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ, Π½Π°Π·ΡΠ²Π°ΡΡ ΡΡΠ΅ΠΊΠΎΠΌ.
Deque ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΡΡΠΏΠ°ΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΈ ΠΊΠ°ΠΊ ΡΡΠ΅ΠΊ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊΠ°ΠΊ Π² Π΅Ρ Π½Π°ΡΠ°Π»ΠΎ, ΡΠ°ΠΊ ΠΈ Π² ΠΊΠΎΠ½Π΅Ρ. Π’ΠΎ ΠΆΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ.
ΠΡΠ΄Π΅Ρ Π·Π΄ΠΎΡΠΎΠ²ΠΎ, Π΅ΡΠ»ΠΈ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ Π²Ρ Π½Π°Π·ΠΎΠ²ΡΡΠ΅ Deque ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ: Β«Π΄ΡΠΊΒ», Π° Π½Π΅ Β«Π΄ ΡΠΊΡΡΒ», ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΎ Π³ΠΎΠ²ΠΎΡΡΡ.
Map ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΏΠ°Ρ Β«ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅Β». ΠΠ»ΡΡΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Ρ, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΡΡ. ΠΠΎΡΡΠ΄ΠΎΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½. Map ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΊΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ) ΠΏΠΎ ΠΊΠ»ΡΡΡ.
ΠΡΠΈΠΌΠ΅Ρ: ΡΡΠΎΠΏΠΊΠ° ΠΊΠ°ΡΡΠΎΡΠ΅ΠΊ Ρ ΠΈΠ½ΠΎΡΡΡΠ°Π½Π½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ ΠΈ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° (ΠΊΠ»ΡΡ) Π½Π° ΠΎΠ±ΠΎΡΠΎΡΠ΅ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ Π΅ΡΡΡ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅), Π° Π²ΡΡΠ°ΡΠΊΠΈΠ²Π°ΡΡ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π² Π»ΡΠ±ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΠ΅ ΠΏΡΡΠ°ΠΉΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Collection ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Collections. Map Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Collection, Π½ΠΎ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠ°Π² ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Collections.
Π‘ΠΎΠ±Π΅ΡΡΠΌ Π²ΡΡ Π²ΠΌΠ΅ΡΡΠ΅
Set | List | Queue | Map | |
---|---|---|---|---|
ΠΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΡ | ❌ | ✅ | ✅ | ✅ Π΄Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ |
❌ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅ΠΉ
Π’Π°ΠΊΠΈΠ΅ ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ΅Π±Π΅ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠΉ Map ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ. ΠΡΠΎΠΉΠ΄ΡΠΌΡΡ ΠΊΡΠ°ΡΠΊΠΎ ΠΏΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ List
ΠΠ»Π°ΡΡ ArrayList ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π², Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈΡΡ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΏΠΈΡΠΎΠΊ (Π° Π½Π΅ Map, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ).
Π‘ΡΡΠΎΠΈΡΡΡ Π½Π° Π±Π°Π·Π΅ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΡΠ»ΠΈ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ, ΡΠΎ ΠΏΠΎΠ΄ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ 10 ΡΡΠ΅Π΅ΠΊ. ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° ΡΠΆΠ΅ Π½Π΅Ρ, ΠΌΠ°ΡΡΠΈΠ² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅ΡΡΡ β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π·Π°Π±ΠΎΡΠΈΡΡΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½. ΠΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² Π΅Π³ΠΎ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ Π± ΠΎΠ»ΡΡΠΈΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ ΡΠ΄Π²ΠΈΠ³Π°ΡΡΡΡ Π²ΠΏΡΠ°Π²ΠΎ:
ΠΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Ρ Π±ΠΎΜΠ»ΡΡΠΈΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ ΡΠ΄Π²ΠΈΠ³Π°ΡΡΡΡ Π²Π»Π΅Π²ΠΎ:
ΠΠ»Π°ΡΡ LinkedList ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ List ΠΈ Deque. ΠΡΠΎ ΡΠΏΠΈΡΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ:
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π±ΡΡΡΡΠΎ β Π²ΡΠ΅ΠΌΡΠ·Π°ΡΡΠ°ΡΡ Π½Π΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠΏΠΈΡΠΊΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΡΠΈ ΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ Π½Π΅ ΡΠ΄Π²ΠΈΠ³Π°ΡΡΡΡ: ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ ΡΡΡΠ»ΠΊΠΈ.
ΠΠ° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡΡ ΡΠ°ΡΡΠΎ ΡΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ³ΠΎΠ΄Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ LinkedList, Π° ΠΊΠΎΠ³Π΄Π° β ArrayList.
ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ ΡΠ°ΠΊΠΎΠ²: Π΅ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈ ΡΠ΄Π°Π»ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΡΠ΅, ΡΠ΅ΠΌ ΠΈΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎ Π½Π΅ΠΌΡ, ΡΠΎ Π»ΡΡΡΠ΅ LinkedList. Π ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ β ArrayList.
Π ΡΠ΅Π»ΠΎΠΌ ΡΠ°ΠΊ ΠΈ Π΅ΡΡΡ, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±Π»Π΅ΡΠ½ΡΡΡ ΡΡΡΠ΄ΠΈΡΠΈΠ΅ΠΉ β ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ. ΠΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ArrayList (ΠΈΠ»ΠΈ ΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ) Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ System.arraycopy. Π Π½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΠ°ΠΌΡΡΠΈ. Π’Π°ΠΊ ΡΡΠΎ Π΄Π°ΠΆΠ΅ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π·Π° ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Queue
ΠΡΠΎ ΠΎΠ΄Π½Ρ ΠΈΠ· Π½ΠΈΡ , LinkedList, ΠΌΡ ΡΠ°ΡΡΠΊΠ°Π·Π°Π»ΠΈ Π²ΡΡΠ΅.
ΠΠ»Π°ΡΡ ArrayDeque β ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π²ΡΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² Π½Π°ΡΠ°Π»ΠΎ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π΅Ρ ΡΠΏΠΈΡΠΊΠ°, ΠΈ ΡΠ΄Π°Π»ΡΡΡ ΠΎΡΡΡΠ΄Π° ΠΆΠ΅. ΠΡΠΈΡΡΠΌ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ LinkedList.
ΠΠ»Π°ΡΡ PriorityQueue β ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½Π°Ρ ΠΎΡΠ΅ΡΠ΅Π΄Ρ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π² Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅: ΡΠΈΡΠ»Π° ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ, ΡΡΡΠΎΠΊΠΈ ΠΏΠΎ Π°Π»ΡΠ°Π²ΠΈΡΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅, Π»ΠΈΠ±ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ.
ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ n ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΠΈΡΠ΅Π» Π² Π±ΠΎΠ»ΡΡΠΎΠΌ Π½Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅:
Π’Π°ΠΊΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΡΠ³ΠΎΠ΄Π½Π΅Π΅ ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈ ΠΎΠ±ΡΡΠΌΡ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ΅ΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Set
ΠΠ»Π°ΡΡ HashSet ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² Ρ Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠ΅. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΏΡΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΡΡ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ρ Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΡ β hashCode() Π² Java.
Π₯Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠ° β ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ , Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² Π±Π°ΠΊΠ΅ΡΡ (buckets), ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Ρ Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ Π² Π³ΠΎΡΡΠΈΠ½ΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠ»Π°ΡΡΡ ΠΊΠ»ΡΡ Π² ΠΊΠΎΡΠΎΠ±ΠΊΡ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ΠΎΡ 1 Π΄ΠΎ 9, Π²ΡΡΠΈΡΠ»ΡΡ Π΅Π³ΠΎ ΠΏΠΎ ΡΠ°ΠΊΠΎΠΌΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ: ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠΈΡΡΡ Π½ΠΎΠΌΠ΅ΡΠ°, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΠΎΠ΄Π½ΠΎΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ.
ΠΠ΄Π΅ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ β Ρ Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΡ, Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ β Ρ Π΅Ρ-ΠΊΠΎΠ΄.
Π’ΠΎΠ³Π΄Π° ΠΊΠ»ΡΡ ΠΎΡ Π½ΠΎΠΌΠ΅ΡΠ° 356 ΠΏΠΎΠΏΠ°Π΄ΡΡ Π² ΠΊΠΎΡΠΎΠ±ΠΊΡ 5 (3 + 5 + 6 = 14; 1 + 4 = 5), Π° ΠΊΠ»ΡΡ ΠΎΡ Π½ΠΎΠΌΠ΅ΡΠ° 123 β Π² ΠΊΠΎΡΠΎΠ±ΠΊΡ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ 6.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎΠΈΡΠΊ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΈΡΠ»Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
Π ΠΊΠ»Π°ΡΡΠ΅ TreeSet Π²ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΎ. ΠΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°ΡΡ β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ TreeSet. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π² Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΎΠ½ΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΊΡΠ°ΡΠ½ΠΎ-ΡΡΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π°.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Map
ΠΠ»Π°ΡΡ HashMap Ρ ΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ Π² Π²ΠΈΠ΄Π΅ Ρ Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΡ, ΠΊΠ°ΠΊ ΠΈ HashSet. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, HashSet Π²Π½ΡΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ HashMap. ΠΡΠΈ ΡΡΠΎΠΌ ΠΊΠ»ΡΡΠΎΠΌ Π²ΡΡΡΡΠΏΠ°Π΅Ρ ΡΠ°ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½Ρ.
ΠΠ»Π°ΡΡ TreeMap ΡΡΡΠΎΠΈΡΡΡ ΡΠΎΠΆΠ΅ Π½Π° Π±Π°Π·Π΅ ΠΊΡΠ°ΡΠ½ΠΎ-ΡΡΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π°. ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ Π·Π΄Π΅ΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Ρ (Π² Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΠΎΡΡΠ΄ΠΊΠ΅) Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠΈ ΡΡΠΎΠΌ Π²ΡΡΠ°Π²ΠΊΠ° ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π·Π°ΡΡΠ°ΡΠ½Ρ, ΡΠ΅ΠΌ Π² ΡΠ»ΡΡΠ°Π΅ Ρ HashMap.
ΠΠ»Π°ΡΡ LinkedHashMap ΡΠ°ΡΡΠΈΡΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ HashMap ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ. ΠΠ°ΠΊ ΠΈ Π² LinkedList, Π·Π΄Π΅ΡΡ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΏΠ°ΡΠ°-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
ΠΡΡ ΠΎΠ΄ΠΈΠ½ Ρ ΠΈΡΡΡΠΉ Π²ΠΎΠΏΡΠΎΡ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ: Π² ΠΊΠ°ΠΊΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΡ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΡΡ null-ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ?
ΠΡΠ²Π΅Ρ: ΠΏΠΎΡΡΠΈ Π²ΠΎ Π²ΡΠ΅Ρ , Π½ΠΎ Π½Π΅Π»ΡΠ·Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ null-Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅.
ΠΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅: ΠΌΡΡ ΡΠΎΠ²Π΅ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΡΡ ΠΎΡ ΠΊΠΎΡΠ»Π΅Ρ β ΠΈΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π½Π΅Π»ΡΠ·Ρ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·Π½ΡΠ΅, Π½Π΅ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌΡΠ΅ Π²Π΅ΡΠΈ. Π’Π°ΠΊ ΠΆΠ΅ ΠΈ Π² Java Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅: null ΠΈΠ»ΠΈ ΡΠΈΡΠ»ΠΎ 1, ΠΈΠ»ΠΈ null ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠ° Β«helloΒ».
ΠΠΎΡΡΠΎΠΌΡ null-Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ Π² TreeMap ΠΈ TreeSet.
ΠΡΡ ΠΎΠ½ΠΈ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡ Π² ArrayDeque, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, poll() β ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈΠ· Π½Π°ΡΠ°Π»Π° ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ null ΠΊΠ°ΠΊ ΠΏΡΠΈΠ·Π½Π°ΠΊ ΠΏΡΡΡΠΎΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
ΠΠΎΠΏΡΠ°ΠΊΡΠΈΠΊΡΠ΅ΠΌΡΡ
Π§ΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π²Ρ Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ·ΡΠ±ΡΠΈΠ»ΠΈ ΡΠ΅ΠΎΡΠΈΡ, Π° Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ, Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ Π²Π°ΠΌ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ Π·Π°Π΄Π°Π½ΠΈΡ Π²ΡΠΎΠ΄Π΅ Β«ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°Β»
Π Π°Π·Π±Π΅ΡΡΠΌ ΡΠΈΠΏΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π½Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ.
ΠΠ°Π΄Π°ΡΠΈ Π΄Π»Ρ ArrayList
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½ΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½ΠΈΠΆΠ΅:
ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ: test2:test4:test1:test4:test2:test3:
ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ArrayList Π½ΡΠΌΠ΅ΡΡΡΡΡΡ Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π½ΡΠ»Ρ. ΠΠΎΡΡΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ 1 β ΡΡΠΎ test2.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΡΡΠΎΠΊΡ Β«test4Β» Π² ΡΡΠ΅ΠΉΠΊΡ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ 1. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ Π±ΠΎΜΠ»ΡΡΠΈΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ ΡΠ΄Π²ΠΈΠ³Π°ΡΡΡΡ Π²ΠΏΡΠ°Π²ΠΎ.
ΠΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ Π²ΡΠ²ΠΎΠ΄Π° ( test4) ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ 1 ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ test4.
ΠΠ°Π»Π΅Π΅ ΠΌΡ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ° ΠΈ ΡΠ±Π΅ΠΆΠ΄Π°Π΅ΠΌΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ.
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°:
ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ: 2:2
ΠΠ΅ΡΠ²Π°Ρ ΡΠ°ΡΡΡ ΠΏΠΎΠ½ΡΡΠ½Π°: Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄Π²Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΏΠΈΡΠΊΠ° ΡΠ°Π²Π΅Π½ Π΄Π²ΡΠΌ. ΠΡΡΠ°ΡΡΡΡ Π²ΠΎΠΏΡΠΎΡ: ΠΏΠΎΡΠ΅ΠΌΡ Π½Π΅ Π±ΡΠ» ΡΠ΄Π°Π»ΡΠ½ Β«test1Β»?
ΠΠ΅ΡΠ΅Π΄ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅. ArrayList ΠΈ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Ρ Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΌΠ΅ΡΠΎΠ΄ equals().
Π‘ΡΡΠΎΠΊΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Β«test3Β» Π½Π΅ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ Β«test1Β» ΠΈ Β«test2Β». Π ΡΠ°Π· Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΊΡΠΈΡΠ΅ΡΠΈΡ ΠΏΠΎΠΈΡΠΊΠ°, Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ΄Π°Π»ΠΈΡΡΡ β ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΏΠΈΡΠΊΠ° ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΌ.
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ΅Π±Ρ: ΠΏΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ, Π΅ΡΠ»ΠΈ Π²ΠΌΠ΅ΡΡΠΎ
ΠΠ°Π΄Π°ΡΠΈ Π΄Π»Ρ Set
Π§ΡΠΎ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° Π½ΠΈΠΆΠ΅:
ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ: 3:, Π° Π΄Π°Π»ΡΡΠ΅ ΡΠΎΡΠ½ΠΎ Π½Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π° Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°Ρ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡ, Π²ΡΠΎΡΠΎΠΉ Β«ΠΠ²Π°Π½Β» Π½Π΅ ΡΡΠ°Π½Π΅Ρ ΡΠ°ΡΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°. Π ΠΈΡΠΎΠ³Π΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π΅Π½ 3.
Π ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎ ΠΌΡ ΡΠΊΠ°Π·Π°ΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ: Π²ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°Ρ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ.
Π§ΡΠΎ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°:
ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ: 4.
ΠΠ°ΠΊ ΠΆΠ΅ ΡΠ°ΠΊ, Π²Π΅Π΄Ρ Π²ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ?
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ Π΅Π³ΠΎ hashCode() β ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π±Π°ΠΊΠ΅Ρ, ΠΊΡΠ΄Π° ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΡΠ½.
ΠΡΠ»ΠΈ Π±Π°ΠΊΠ΅Ρ ΠΏΡΡΡ, ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½. ΠΠ½Π°ΡΠ΅ ΡΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Ρ Π΅ΡΠ° ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ Ρ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° equals(). ΠΡΠ»ΠΈ Π΄ΡΠ±Π»ΠΈΠΊΠ°Ρ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, Π½ΠΎΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ°ΡΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°. ΠΠ½ ΠΏΠΎΠΏΠ°Π΄ΡΡ Π² ΡΠΎΡ ΠΆΠ΅ Π±Π°ΠΊΠ΅Ρ.
ΠΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π² Set ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠΈΠΏΠ° Person β ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ, ΠΊΠ°ΠΊ ΠΈ Π²ΡΠ΅ ΡΡΡΠ»ΠΎΡΠ½ΡΠ΅ ΡΠΈΠΏΡ, Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° Object.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ hashCode(), Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. Π Π½Π΅ΠΉ Ρ Π΅Ρ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄Π°Π½Π½ΡΡ Π°Π΄ΡΠ΅ΡΠ° (ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ JVM).
ΠΠ΅ΡΠΎΠ΄ equals() ΡΠΎΠΆΠ΅ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½. Π ΠΊΠ»Π°ΡΡΠ΅-ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΎΡΡΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Ρ Π΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΠΈΠ· ΡΠ΅ΡΡΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², equals() Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π΅ΡΠ½ΡΡ false.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΠ΅ΡΡΡΡΡ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠ² ΠΏΠΎΠΏΠ°Π΄ΡΡ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ.
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ΅Π±Ρ: ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ Π»ΠΈ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ hashCode() Π²ΠΎΡ ΡΠ°ΠΊ:
Π Π΅ΡΠ»ΠΈ Π΅ΡΡ ΠΈ equals() ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊ Π½Π° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ Π½ΠΈΠΆΠ΅:
Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΠΏΠΎ Java Collections Framework
ΠΠ°Π½Π½Π°Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΌ ΡΠ°Π·Π±ΠΎΡΠΎΠΌ ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ (Π½Π΅ ΠΏΠΎΠΊΡΡΠ²Π°Π΅Ρ ΠΏΠ°ΠΊΠ΅Ρ java.util.concurrent ). ΠΡΠΎ, ΡΠΊΠΎΡΠ΅Π΅, ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΠΎΠ½ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ , Π° Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΡΠ½ΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠ²Π΅ΠΆΠΈΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π² ΠΏΠ°ΠΌΡΡΠΈ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Java Collections Framework?
Java Collection Framework β ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΈ ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ JDK ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΠ²ΠΎΠΌ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Β«ΠΊΠΎΡΠΎΠ±ΠΊΠΈΒ».
ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Map [doc]
Hashtable β ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠ°ΠΊ Ρ ΡΡ-ΡΠ°Π±Π»ΠΈΡΠ°. ΠΠ½Π° Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ null Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΊΠ»ΡΡΠ°. ΠΡΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ Π±ΡΠ»Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΠ°Π½ΡΡΠ΅, ΡΠ΅ΠΌ Java Collection Framework, Π½ΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ Π±ΡΠ»Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² Π΅Π³ΠΎ ΡΠΎΡΡΠ°Π². ΠΠ°ΠΊ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΈΠ· Java 1.0, Hashtable ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ (ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ ΠΊΠ°ΠΊ synchronized ). ΠΠ·-Π·Π° ΡΡΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Ρ Π½Π΅Ρ ΠΈΠΌΠ΅ΡΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΈ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Java 1.2, Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Map Π²Π²ΠΈΠ΄Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Ρ Π½ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ.
WeakHashMap β ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Ρ ΡΡ-ΡΠ°Π±Π»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ weak references. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Garbage Collector Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΄Π°Π»ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΏΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ±ΠΎΡΠΊΠ΅ ΠΌΡΡΠΎΡΠ°, Π΅ΡΠ»ΠΈ Π½Π° ΠΊΠ»ΡΡ ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅ΡΠ½Π° Π½Π΅Ρ ΠΆΡΡΡΠΊΠΈΡ ΡΡΡΠ»ΠΎΠΊ.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ List [doc]
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΈ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Ρ ΡΠ°Π½ΠΈΡΡ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΡ, ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅).
ArrayList β ΠΊΠ°ΠΊ ΠΈ Vector ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π»ΡΠ±ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π²ΠΊΠ»ΡΡΠ°Ρ null Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅. ΠΠ°Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ, Π΅ΡΠ»ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ ΠΏΡΠ΅Π΄ΠΏΠ»Π°Π³Π°Π΅ΡΡΡ ΡΠ°ΡΡΠΎΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ. ΠΠ·-Π·Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ O(1). ΠΠΎ Π΄Π°Π½Π½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΠ·Π±Π΅Π³Π°ΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅/Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ. ΠΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π² ΡΡΠΎΠΌ Ρ Π°Π±ΡΠ°ΡΠΎΠΏΠΈΠΊΠ΅.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Set [doc]
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄ΡΠ±Π»ΠΈΡΡΡΡΠΈΠ΅ΡΡ Π΄Π°Π½Π½ΡΠ΅. Π―Π²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ½ΡΡΠΈΡ Β«ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΒ».
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Queue [doc]
ΠΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Ρ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π²ΡΡΠ°Π²ΠΊΠΈ ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π° ΠΈΠΌΠ΅Π½Π½ΠΎ β ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ FIFO (first-in-first-out). ΠΠΎΠΌΠΈΠΌΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Collection, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ java.util.concurrent ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΎΠ±Π·ΠΎΡΠ΅.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Java Collections Framework ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ , Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π² JDK Β«ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈΒ», ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΏΠΎΠΊΡΡΠ²Π°ΡΡ Π²ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ ΠΏΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΠ°ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ΅:
ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΡΠ°ΡΡΠΈΡΠΈΠ² ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ Π»ΠΎΠ³ΠΈΠΊΡ, Π»ΠΈΠ±ΠΎ ΡΠΎΠ·Π΄Π°Π² ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Ρ Π½ΡΠ»Ρ. Π’Π°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π³ΠΎΡΠΎΠ²ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Java Collections Framework. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ Google Guava ΠΈ Commons Collections.
Π‘ΠΏΠΈΡΠΊΠΈ Π½Π° Java β ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° List
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Java List, java.util.List, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ Java, Π²ΡΡΠ°Π²Π»ΡΡΡ ΠΈ ΡΠ΄Π°Π»ΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ ΠΈΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π² ΡΠΏΠΈΡΠΊΠ΅.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΠΏΠΈΡΠΊΠ΅ Java ΠΈΠΌΠ΅Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΈΠΌΠ΅Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ 0, Π²ΡΠΎΡΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ 1 ΠΈ Ρ.Π΄.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΡΠΏΠΈΡΠΎΠΊ. ΠΡΠ»ΠΈ ΡΠΏΠΈΡΠΎΠΊ Π½Π΅ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Java Generics, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π°ΠΆΠ΅ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ² (ΠΊΠ»Π°ΡΡΠΎΠ²) Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΡΠΏΠΈΡΠΊΠ΅.
Java List β ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΡΠΈΠΏΠΎΠΌ Java Collection, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ List Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ Collection.
Π£ΡΠ΅Π±Π½ΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌ Java
ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ ΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΈΠ΄Π΅ΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ°, Π²ΠΎΡ Π²ΠΈΠ΄Π΅ΠΎ Π²Π΅ΡΡΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π±Π½ΠΈΠΊΠ° ΠΏΠΎ Java List:
Java List ΠΈ Set
Java List ΠΈ Java Set ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ.
ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Java List ΠΈ Java Set ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π°. ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π½Π°Π±ΠΎΡΠ°, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·.
ΠΡΠΎΡΠΎΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ β ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² List ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ, ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΡΡ Π² ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΠ°Π±ΠΎΡ Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Ρ ΡΠ°Π½ΡΡΠΈΡ ΡΡ Π²Π½ΡΡΡΠΈ.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ List
ΠΡΠ΄ΡΡΠΈ ΠΏΠΎΠ΄ΡΠΈΠΏΠΎΠΌ Collection, Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Collection ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² Listinterface.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ List β ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠΌΠΈ List Π² API ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ Java:
Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ List Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ java.util.concurrent.
ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ List:
ΠΠ°ΠΊ Π²ΡΡΠ°Π²ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΡΠΏΠΈΡΠΎΠΊ Java
ΠΡΡΠ°Π²ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ (ΠΎΠ±ΡΠ΅ΠΊΡΡ) Π² ΡΠΏΠΈΡΠΎΠΊ Java ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ add (). ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠΏΠΈΡΠΎΠΊ Java:
ΠΠ΅ΡΠ²ΡΠ΅ ΡΡΠΈ Π²ΡΠ·ΠΎΠ²Π° add () Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ String Π² ΠΊΠΎΠ½Π΅Ρ ΡΠΏΠΈΡΠΊΠ°.
ΠΡΡΠ°Π²ΠΈΡΡ Π½ΡΠ»Π΅Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠ°Π²ΠΈΡΡ Π΄Π°ΠΆΠ΅ Π½ΡΠ»Π΅Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠΏΠΈΡΠΎΠΊ.
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ
ΠΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ List ΠΈΠΌΠ΅Π΅Ρ Π²Π΅ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° add(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄Π»Ρ Π²ΡΡΠ°Π²ΠΊΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΡΠ°Π²ΠΊΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ 0.
ΠΡΠ»ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΡΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ Π΄Π°Π»ΡΡΠ΅ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π» ΠΈΠ½Π΄Π΅ΠΊΡ 0 Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½ΠΎΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π±ΡΠ» Π²ΡΡΠ°Π²Π»Π΅Π½ Π² ΠΈΠ½Π΄Π΅ΠΊΡ 0, Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ Π² ΠΈΠ½Π΄Π΅ΠΊΡ 1 ΠΈ Ρ.Π΄.
ΠΡΡΠ°Π²Π»ΡΠ΅ΠΌ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π² Π΄ΡΡΠ³ΠΎΠΉ
ΠΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π² Π΄ΡΡΠ³ΠΎΠΉ. Π‘Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ListaddAll (). Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ².
ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· listSource Π² listDest.
ΠΠ΅ΡΠΎΠ΄ addAll () ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π°Π±ΠΎΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ.
ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Java
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Java, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ΅ΡΠΎΠ΄ΠΎΠΌ get (int index). ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΡΠΏΠΈΡΠΊΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²:
Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ° Π² ΡΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ Ρ ΡΠ°Π½ΡΡΡΡ Π²Π½ΡΡΡΠΈ.
ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ Java
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ Java, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠΈΡ Π΄Π²ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²:
ΠΠ°ΠΏΡΡΠΊ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ:
ΠΠ°ΠΉΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΡΠΏΠΈΡΠΊΠ΅
ΠΠ΅ΡΠΎΠ΄ lastIndexOf () Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π² ΡΠΏΠΈΡΠΊΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ, Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½Π½ΡΠΉ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΎΠ²:
ΠΠ»Π΅ΠΌΠ΅Π½Ρ 1 Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ 2 ΡΠ°Π·Π°. ΠΠ½Π΄Π΅ΠΊΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠ°Π²Π΅Π½ 2.
ΠΡΠΎΠ²Π΅ΡΠΊΠ°: ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ?
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ Java List Π΄Π°Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅ΡΠΎΠ΄ List contains ().
Π§ΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ List ΡΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, List Π±ΡΠ΄Π΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ²ΠΎΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΡΠ»Π΅Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠΏΠΈΡΠΎΠΊ, ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ ΡΠΏΠΈΡΠΎΠΊ Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π΄Π»Ρ contains () ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ null, ΠΌΠ΅ΡΠΎΠ΄ contains () Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ equals() Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ, Π° Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ==.
ΠΠ°ΠΊ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Java
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Java Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ Π΄Π²ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²:
remove (Object element) ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΠΏΠΈΡΠΊΠ΅, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ. ΠΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ Π²Π²Π΅ΡΡ ΠΏΠΎ ΡΠΏΠΈΡΠΊΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ Π½Π° 1.
ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ½Π°ΡΠ°Π»Π° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ½ΠΎΠ²Π° ΡΠ΄Π°Π»ΡΠ΅Ρ Π΅Π³ΠΎ.
ΠΠ΅ΡΠΎΠ΄ List remove (int index) ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ.
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΊΠΎΠ΄Π° ΡΠΏΠΈΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ 1 ΠΈ 2 Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ 0 ΠΈ 1.
ΠΡΠΈΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Java List ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ clear (), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΄Π°Π»ΡΠ΅Ρ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΡΠΈΡΡΠΊΠΎΠΉ.
ΠΠ°ΠΊ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π² Π΄ΡΡΠ³ΠΎΠΌ
ΠΠ΅ΡΠΎΠ΄ retainAll () ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π² Π΄ΡΡΠ³ΠΎΠΌ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΌΠ΅ΡΠΎΠ΄ retain () ΡΠ΄Π°Π»ΡΠ΅Ρ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Ρ Π² Π΄ΡΡΠ³ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ².
Π£Π·Π½Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΠ·Π²Π°Π² ΠΌΠ΅ΡΠΎΠ΄ size (). ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΠ΄ΡΠΏΠΈΡΠΎΠΊ ΡΠΏΠΈΡΠΊΠ°
ΠΠ΅ΡΠΎΠ΄ subList () ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ List Ρ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ List.
ΠΠ΅ΡΠΎΠ΄ subList () ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ 2 ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°: Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΠ°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ β ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΠΏΠΎΠ΄ΡΠΏΠΈΡΠΎΠΊ.
ΠΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ ΠΏΠΎΠ΄ΡΠΏΠΈΡΠΊΠ°, Π½ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ Π½Π΅ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΏΠΎΠ΄ΡΠΏΠΈΡΠΎΠΊ. ΠΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ Java String.
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ list.subList (1,3) ΠΏΠΎΠ΄ΡΠΏΠΈΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ 1 ΠΈ 2.
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 4 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ ΠΎΡ 0 Π΄ΠΎ 3. ΠΡΠ·ΠΎΠ² list.subList (1,3) Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ 1, Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ 3, ΡΠΎΡ ΡΠ°Π½ΡΡ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ 1 ΠΈ 2.
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ list Π² set
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Java Π² Π½Π°Π±ΠΎΡ(set), ΡΠΎΠ·Π΄Π°Π² Π½ΠΎΠ²ΡΠΉ Π½Π°Π±ΠΎΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² Π½Π΅Π³ΠΎ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°. ΠΠ°Π±ΠΎΡ ΡΠ΄Π°Π»ΠΈΡ Π²ΡΠ΅ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΡ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΉ Π½Π°Π±ΠΎΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·.
ΠΠ±ΡΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΈ
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΡΠΏΠΈΡΠΎΠΊ, Π½ΠΎ Java ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΡΠΈΠΏΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡΠ°Π²ΠΈΡΡ Π² ΡΠΏΠΈΡΠΎΠΊ.
ΠΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ MyObject. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π±Π΅Π· ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ.
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Collections sort ().
ΠΡΠ»ΠΈ Π‘ΠΏΠΈΡΠΎΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Comparable (java.lang.Comparable), ΡΠΎΠ³Π΄Π° ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ»Π°ΡΡ Java String ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Comparable, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ Π² Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Collections sort ().
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠΏΠΈΡΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Comparatorimplementation
ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Comparable ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΎΡΠ»ΠΈΡΠ½ΠΎΠΌ ΠΎΡ ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ compare (), Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Comparatorimplementation (java.util.Comparator).
ΠΠΎΡ ΠΊΠΎΠ΄ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Comparator Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅. ΠΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅ ΠΌΠ°ΡΠΊΠΈ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ Car. ΠΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΡΡΠ³ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Comparator, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ Π½ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ Π·Π½Π°ΠΊΠΈ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π²Π΅ΡΠ΅ΠΉ Π² Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΡΡ .
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Comparator Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Java Lambda. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡΡΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ List of Car Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Comparator, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Car ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΠΏΠΎΠ»Ρ:
ΠΡΠ΅ΡΠ°ΡΠΈΠΈ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. Π’ΡΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π°:
ΠΡΠ΅ΡΠ°ΡΠΈΡ ΡΠΏΠΈΡΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°
ΠΠ΅ΡΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΏΠΈΡΠΊΠ° β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ Java.
ΠΡΠ·ΡΠ²Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ iterator () ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° List.
ΠΡΠ·ΠΎΠ² hasNext () Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΡΠΈΠΊΠ»Π° while.
ΠΠ½ΡΡΡΠΈ ΡΠΈΠΊΠ»Π° while Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ Iterator next () Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Iterator.
ΠΡΠ»ΠΈ ΡΠΏΠΈΡΠΎΠΊ Π·Π°Π΄Π°Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Java Generics, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π²Π½ΡΡΡΠΈ ΡΠΈΠΊΠ»Π° while.
ΠΡΠ΅ΡΠ°ΡΠΈΡ ΡΠΏΠΈΡΠΊΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠΊΠ»Π° For-Each
ΠΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ List β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΊΠ» for.
Π¦ΠΈΠΊΠ» for Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠ½ΡΡΡΠΈ ΡΠΈΠΊΠ»Π° for ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΡΠ²ΡΠ·Π°Π½ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ obj.
ΠΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π½ΡΡΡΠΈ ΡΠΈΠΊΠ»Π° for.
ΠΡΠ΅ΡΠ°ΡΠΈΡ ΡΠΏΠΈΡΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° For
Π’ΡΠ΅ΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ List β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΈΠΊΠ» for, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ:
Π¦ΠΈΠΊΠ» for ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ int ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π΅Π΅ 0. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½Π° Π·Π°ΡΠΈΠΊΠ»ΠΈΠ²Π°Π΅ΡΡΡ, ΠΏΠΎΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ int i ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠΏΠΈΡΠΊΠ°. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ i ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ.
ΠΠ½ΡΡΡΠΈ ΡΠΈΠΊΠ»Π° for ΠΎΠ±ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ List Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° get (), ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ i.
ΠΠΏΡΡΡ ΠΆΠ΅, Π΅ΡΠ»ΠΈ ΡΠΏΠΈΡΠΎΠΊ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Java Generics, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π΄Π»Ρ ΡΡΡΠΎΠΊΠΈ, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠΏ ΡΠΏΠΈΡΠΊΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΈΠΏΠ° Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ.
Π’ΠΈΠΏ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π½ΡΡΡΠΈ ΡΠΈΠΊΠ»Π° for ΡΠ΅ΠΏΠ΅ΡΡ String. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ String, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ String.
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π·Π½Π°Π΅Ρ, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ String ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π° get (). ΠΠΎΡΡΠΎΠΌΡ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΡΠΉ get (), Π² String.
ΠΠ΅ΡΠ΅Π±ΠΎΡ ΡΠΏΠΈΡΠΊΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ API Java Stream
Π§Π΅ΡΠ²Π΅ΡΡΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π· API Java Stream. ΠΠ»Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΡΠΎΠΊ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°. ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ° ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Π² Java Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° Liststream ().
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΏΠΎΡΠΎΠΊ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°, Π²ΡΠ·Π²Π°Π² Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ forEach ().
ΠΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° forEach () Π·Π°ΡΡΠ°Π²ΠΈΡ Stream Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎΡΠΎΠΊΠ°.
Π‘ΡΠ΅Π΄Π½ΡΡ ΠΎΡΠ΅Π½ΠΊΠ° / 5. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π³ΠΎΠ»ΠΎΡΠΎΠ²:
ΠΠ»ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡ ΡΡΠ°ΡΡΠ΅ΠΉ
ΠΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π²Ρ Π½Π΅ Π½Π°ΡΠ»ΠΈ ΠΎΡΠ²Π΅Ρ Π½Π° ΡΠ²ΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ.