ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΡΠ°Ρ ΠΊΠ»ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
Π‘ΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π² ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°Ρ . HashMap
ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡ Π²Π°Ρ, Ρ Π°Π±ΡΠ°ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ!
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ ΠΏΠΎΠΏΡΡΠΊΠΈ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π² Java. Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΠ΅ΡΠΈΡΡ ΠΌΡ ΡΠΆΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ ArrayList ΠΈ LinkedList, ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ HashMap.
HashMap β ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° Ρ ΡΡ-ΡΠ°Π±Π»ΠΈΡΠ°Ρ , ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Map (ΡΡΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°Ρ ΠΊΠ»ΡΡ/Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅). ΠΠ»ΡΡΠΈ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π»ΡΠ±ΡΡ ΡΠΈΠΏΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ null. ΠΠ°Π½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ Π΄Π°Π΅Ρ Π³Π°ΡΠ°Π½ΡΠΈΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ²ΠΎΠΈ Π΅ΠΌΠΊΠΎΡΡΡ ΠΈ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ HashMap(capacity) ΠΈ HashMap(capacity, loadFactor). ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π΅ΠΌΠΊΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ, ΡΠ°Π²Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ int (1073741824).
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ, ΠΊΠ°ΠΊΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΡΠΎΠΈΡ ΠΎΠΆΠΈΠ΄Π°ΡΡ β ΠΌΠ΅ΡΠΎΠ΄ hash(key) Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Ρ ΡΡ-ΠΊΠΎΠ΄Ρ, Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ (ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 8, ΠΏΡΠΈ Π΄Π΅ΡΠΎΠ»ΡΠ½ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ).
Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, Π΄Π»Ρ ΠΊΠ»ΡΡΠ° ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ »0» ΠΌΠ΅ΡΠΎΠ΄ hashCode() Π²Π΅ΡΠ½ΡΠ» Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 48, Π² ΠΈΡΠΎΠ³Π΅:
ΠΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ Ρ ΡΡΠ° 51 ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠ΅ 16, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅:
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ HashMap, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
Footprint
Object size: 376 bytes
Footprint
Object size: 496 bytes
Resize ΠΈ Transfer
ΠΠΎΠ³Π΄Π° ΠΌΠ°ΡΡΠΈΠ² table[] Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄ΠΎ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π²Π΄Π²ΠΎΠ΅ ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΠΊ Π²Ρ ΡΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ Π² ΠΌΠ΅ΡΠΎΠ΄Π°Ρ resize(capacity) ΠΈ transfer(newTable) Π½Π΅Ρ.
ΠΠ΅ΡΠΎΠ΄ transfer() ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅Ρ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, ΠΏΠ΅ΡΠ΅ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ (Ρ ΡΡΠ΅ΡΠΎΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°) ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎ Π½ΠΎΠ²ΠΎΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Ρ.
ΠΡΠ»ΠΈ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ hashmap Π΄ΠΎΠ±Π°Π²ΠΈΡΡ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, Π΅ΡΠ΅ 15 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠΎ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΡΠ΄Π΅Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
Π£ HashMap Π΅ΡΡΡ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ Β«ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Β» ΠΊΠ°ΠΊ ΠΈ Ρ ArrayList β ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° table[] Π½Π΅ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ. Π Π΅ΡΠ»ΠΈ Π² ArrayList ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΠΌΠ΅ΡΠΎΠ΄ trimToSize(), ΡΠΎ Π² HashMap ΡΠ°ΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π½Π΅Ρ (Ρ ΠΎΡΡ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π» ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΉ ΠΊΠΎΠ»Π»Π΅Π³Π° β «Π ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ½ΠΎ ΠΈ Π½Π΅ Π½Π°Π΄ΠΎ?«).
ΠΠ΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ΅ΡΡ, Π΄Π»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ³ΠΎ ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅. ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 496 Π±Π°ΠΉΡ. ΠΠΎΠ±Π°Π²ΠΈΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 150 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ΄Π°Π»ΠΈΠΌ ΡΠ΅ ΠΆΠ΅ 150 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΈ ΡΠ½ΠΎΠ²Π° Π·Π°ΠΌΠ΅ΡΠΈΠΌ.
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, ΡΠ°Π·ΠΌΠ΅Ρ Π΄Π°ΠΆΠ΅ Π±Π»ΠΈΠ·ΠΊΠΎ Π½Π΅ Π²Π΅ΡΠ½ΡΠ»ΡΡ ΠΊ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ. ΠΡΠ»ΠΈ Π΅ΡΡΡ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅/ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ HashMap(Map).
ΠΡΠ΅ΡΠ°ΡΠΎΡΡ
HashMap ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ, ΡΠ°ΠΊΠΈΠ΅, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΊΠ»ΡΡΠ΅ΠΉ keySet(), Π²ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ values() ΠΈΠ»ΠΈ ΠΆΠ΅ Π²ΡΠ΅ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡ/Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ entrySet(). ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²:
Π‘ΡΠΎΠΈΡ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π² Ρ ΠΎΠ΄Π΅ ΡΠ°Π±ΠΎΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ° HashMap Π±ΡΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ (Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°), ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ.
ΠΡΠΎΠ³ΠΈ
β ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π° Π²ΡΠ΅ΠΌΡ O(1), ΠΏΠΎΡΠΎΠΌΡ ΠΊΠ°ΠΊ Π½ΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²ΡΡΠ°Π²Π»ΡΡΡΡΡ Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠΈ;
β ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π·Π° Π²ΡΠ΅ΠΌΡ O(1), Π΅ΡΠ»ΠΈ Ρ
ΡΡ-ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ. Π‘ΡΠ΅Π΄Π½Π΅Π΅ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ΄Π΅Ρ Ξ(1 + Ξ±), Π³Π΄Π΅ Ξ± β ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. Π ΡΠ°ΠΌΠΎΠΌ Ρ
ΡΠ΄ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠ°Π²ΠΈΡΡ Ξ(n) (Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠ΅);
β ΠΠ»ΡΡΠΈ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π»ΡΠ±ΡΡ
ΡΠΈΠΏΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ null. ΠΠ»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ
ΡΠΈΠΏΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ-ΠΎΠ±Π΅ΡΠΊΠΈ;
β ΠΠ΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½.
Π‘ΡΡΠ»ΠΊΠΈ
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ Π·Π°ΠΌΠ΅ΡΠΎΠ² β memory-measurer ΠΈ Guava (Google Core Libraries).
ΠΠ°ΡΡΠΈΠ½ ΠΠ°Π²Π΅Π»
ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΌΠ΅Π½Ρ
ΠΠΎΠΏΡΠΎΡΡ ΠΈ ΠΎΡΠ²Π΅ΡΡ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎ ΡΠ΅ΠΌΠ΅ Java Collection Framework. Π§Π°ΡΡΡ 1.
ΠΠ±ΡΠ°Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ
9. ΠΠ°ΠΊ ΠΎΠ΄Π½ΠΈΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· Π»ΡΠ±ΠΎΠΉ Collection Π² ΠΌΠ°ΡΡΠΈΠ²?
Iterator, Iterable
ΠΠ±Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Iterator Π±ΡΠ» Π²Π²Π΅Π΄Π΅Π½ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Π² Java Collections Framework ΠΈ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ Iterator ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Enumeration :
ΠΠ΅Ρ, hasNext() ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π½Π°Π»ΠΈΡΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
7. ΠΡΠ»ΠΈ Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΈ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ Π»ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ, Π΅ΡΠ»ΠΈ Ρ Π²ΡΠ·ΠΎΠ²Ρ iterator.remove()?
ΠΡΠ»ΠΈ iterator.next() Π±ΡΠ» Π²ΡΠ·Π²Π°Π½ ΠΏΡΠ΅ΠΆΠ΄Π΅, ΡΠΎ iterator.remove() ΡΠ΄Π°Π»ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ.
List: ArrayList, LinkedList
ΠΠ±Π΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π΄ΡΠΏΠ»ΠΈΠΊΠ°ΡΠΎΠ² ΠΈ null. ΠΠ½ΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°ΡΡΠΈΡΡΡΡΠΈΡ ΡΡ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠ»Π°ΡΡ Vector Π±ΡΠ» Π²Π²Π΅Π΄Π΅Π½ Π² JDK 1.0 ΠΈ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ Java Collection Framework. ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° Vector ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ, ΡΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ, Π½ΠΎ ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈ Π±ΡΠ» Π²Π²Π΅Π΄Π΅Π½ ΠΊΠ»Π°ΡΡ ArrayList, ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ.
3. LinkedList β ΡΡΠΎ ΠΎΠ΄Π½ΠΎΡΠ²ΡΠ·Π½ΡΠΉ, Π΄Π²ΡΡΠ²ΡΠ·Π½ΡΠΉ ΠΈΠ»ΠΈ ΡΠ΅ΡΡΡΠ΅Ρ ΡΠ²ΡΠ·Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ?
ΠΠ²ΡΡ ΡΠ²ΡΠ·Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ: ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ LinkedList Ρ ΡΠ°Π½ΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
ΠΡΠ»ΠΈ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ΅ΡΡΠ° Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π² ΠΏΠ°ΠΌΡΡΠΈ Π½Π΅ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ. ΠΠ½Π°ΡΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ:
ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° 1.5 (ΡΡΠΎ Π²Π΅ΡΠ½ΠΎ Π΄Π»Ρ JDK 1.7, Π² Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ).
ΠΠ»Ρ 64-Π±ΠΈΡΠ½ΠΎΠΉ JVM ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠ»ΠΊΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 64 Π±ΠΈΡΠ° (8 Π±Π°ΠΉΡ), ΡΠ°Π·ΠΌΠ΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 16 Π±Π°ΠΉΡ (Π΄Π²Π° ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΡΠ»ΠΎΠ²Π°). ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Ρ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² LinkedList Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ descendingIterator().
14. ΠΠ°ΠΊ ΠΎΠ΄Π½ΠΈΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΈΠ· List ΠΏΠΎΠ»ΡΡΠΈΡΡ List ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΊΡΠΎΠΌΠ΅ ΠΏΠ΅ΡΠ²ΡΡ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ 3-Ρ ?
ΠΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π² Java
2020.06.08 (ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: 2021.07.15)
ΠΠ±ΡΠ΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ
ΠΠ΅ΡΠ°ΡΡ
ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|
Itarable | Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΡΠΈΠΊΠ»Π΅ βfor-eachβ |
Collection | ΠΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π² ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ. |
List | Π£ΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½Π°Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ). |
Set | ΠΠΎΠ»Π»Π΅ΠΊΡΠΈΡ (Π½Π°Π±ΠΎΡ/ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ), ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΡ ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². |
SortedSet | ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Set, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ. |
NavigableSet | ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ SortedSet ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΡ ΠΏΠΎΠΈΡΠΊ Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΡ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠΉ ΠΈΡΠΊΠΎΠΌΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². |
Queue | ΠΡΠ΅ΡΠ΅Π΄Ρ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½Π° Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ. |
Deque | ΠΠΈΠ½Π΅ΠΉΠ½Π°Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΡΠ°Π²ΠΊΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π° ΠΎΠ±ΠΎΠΈΡ ΠΊΠΎΠ½ΡΠ°Ρ . |
Map | ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ»ΡΡΠΈ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. |
SortedMap | ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠ»ΡΡΠ°ΠΌ. |
NavigableMap | ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ SortedMap ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΡ ΠΏΠΎΠΈΡΠΊ Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΡ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠΉ ΠΈΡΠΊΠΎΠΌΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². |
Iterator | ΠΡΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ. |
ListIterator | ΠΡΠ΅ΡΠ°ΡΠΎΡ Π΄Π»Ρ ΡΠΏΠΈΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΏΠΎ ΡΠΏΠΈΡΠΊΡ Π² Π»ΡΠ±ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ° Π² ΡΠΏΠΈΡΠΊΠ΅. |
RandomAccess | ΠΠ°ΡΠΊΠ΅ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠΌΠΈ ΡΠΏΠΈΡΠΊΠΎΠ² Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π±ΡΡΡΡΡΠΉ (ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΉ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ) ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ. |
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|
Cloneable | ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΏΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ°. |
Serializable | ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΡ Π±ΡΡΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±ΠΈΡ ΠΈΠ»ΠΈ Π±Π°ΠΉΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠΎ ΡΠ΅ΡΠΈ. |
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Map
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. Π‘ΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ ΠΏΠ°Ρ βΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅β.
public interface Map
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ
ΠΠ»Π°ΡΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|
static interface Map.Entry | ΠΠ°ΠΏΠΈΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ (ΠΏΠ°ΡΠ° ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ). ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Map.entrySet() |
ΠΠ΅ΡΠΎΠ΄ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|
K getKey() | ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠ»ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ. |
V getValue() | ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ. |
V setValue(V value) | ΠΠ°ΠΌΠ΅Π½ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΡΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ). |
ΠΠ΅ΡΠΎΠ΄Ρ
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅:
Interface | Hash Table | Resizable Array | Balanced Tree | Linked List | Hash Table + Linked List |
---|---|---|---|---|---|
Set | HashSet | TreeSet | LinkedHashSet | ||
List | ArrayList | LinkedList | |||
Deque | ArrayDeque | LinkedList | |||
Map | HashMap | TreeMap | LinkedHashMap |
Π‘Π²ΠΎΠΉΡΡΠ²Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ
ΠΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ
Π‘ΡΠ΅Π΄Π½Π΅Π΅ | ΠΠ½Π΄Π΅ΠΊΡ | ΠΠΎΠΈΡΠΊ | ΠΡΡΠ°Π²ΠΊΠ° | Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ |
---|---|---|---|---|
ArrayList | O(1) | O(n) | O(n) | O(n) |
Vector | O(1) | O(n) | O(n) | O(n) |
LinkedList | O(n) | O(n) | O(1) | O(1) |
Hashtable | n/a | O(1) | O(1) | O(1) |
HashMap | n/a | O(1) | O(1) | O(1) |
LinkedHashMap | n/a | O(1) | O(1) | O(1) |
TreeMap | n/a | O(log(n)) | O(log(n)) | O(log(n)) |
HashSet | n/a | O(1) | O(1) | O(1) |
LinkedHashSet | n/a | O(1) | O(1) | O(1) |
TreeSet | n/a | O(log(n)) | O(log(n)) | O(log(n)) |
Π₯ΡΠ΄ΡΠ΅Π΅ | ΠΠ½Π΄Π΅ΠΊΡ | ΠΠΎΠΈΡΠΊ | ΠΡΡΠ°Π²ΠΊΠ° | Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ |
---|---|---|---|---|
ArrayList | O(1) | O(n) | O(n) | O(n) |
Vector | O(1) | O(n) | O(n) | O(n) |
LinkedList | O(n) | O(n) | O(1) | O(1) |
Hashtable | n/a | O(n) | O(n) | O(n) |
HashMap | n/a | O(n) | O(n) | O(n) |
LinkedHashMap | n/a | O(n) | O(n) | O(n) |
TreeMap | n/a | O(log(n)) | O(log(n)) | O(log(n)) |
HashSet | n/a | O(n) | O(n) | O(n) |
LinkedHashSet | n/a | O(n) | O(n) | O(n) |
TreeSet | n/a | O(log(n)) | O(log(n)) | O(log(n)) |
ArrayList
Π―Π²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π»ΡΠ±ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π²ΠΊΠ»ΡΡΠ°Ρ null Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅.
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ, Π΅ΡΠ»ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΡΠ°ΡΡΠΎΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ.
ΠΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅/Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ArrayList
Π‘ΡΡΠ»ΠΊΠΈ
LinkedList
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ LinkedList
Π‘ΡΡΠ»ΠΊΠΈ:
HashSet
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ ΡΡ-ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° HashSet
Π‘ΡΡΠ»ΠΊΠΈ:
TreeSet
ΠΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ. Π₯ΡΠ°Π½ΠΈΡ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΡΠΊΡΡΡΡ ΠΊΡΠ°ΡΠ½ΠΎ-ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π°.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ TreeSet
Π‘ΡΡΠ»ΠΊΠΈ:
EnumSet
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ρ ΡΠΈΠΏΠ°ΠΌΠΈ enum (ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡΠΌΠΈ).
ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΈΡΠΎΠ²ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π±ΠΈΡΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ 1, Π΅ΡΠ»ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅. ΠΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² EnumSet ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΡΠ΅, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π·Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΡΠ»ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ EnumSet Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠΌΠΈ Set ΡΠΎ ΠΎΠ½ ΠΎΠ±ΡΡΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ HashSet, Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΡΠΈΡΠ»ΡΡΡ hashcode, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ. EnumSet ΠΎΡΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ΅Π½ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ.
EnumSet ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Ρ ΡΠ°Π½ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ enum Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ EnumSet
Π‘ΡΡΠ»ΠΊΠΈ:
LinkedHashSet
ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² Ρ ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π²Π²ΠΎΠ΄Π°.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ LinkedHashSet ΠΈ HashSet
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ LinkedHashSet ΠΈ TreeSet
Π‘ΡΡΠ»ΠΊΠΈ:
ArrayDeque
ΠΠ²ΡΡΡΠΎΡΠΎΠ½Π½ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ. ΠΠ°ΡΡΠΈΠ² Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠΈΠΌΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Deque.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ArrayDeque ΠΈ LinkedList
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΡΠΊΠ°
Π‘ΡΡΠ»ΠΊΠΈ:
PriorityQueue
ΠΡΠ΅ΡΠ΅Π΄Ρ ΠΏΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π³ΠΎΠ»ΠΎΠ²Π° ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΠΎΠ³Π΄Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΠ°Π½Π΅Ρ Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ.
ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ Π² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
Π‘ΡΡΠ»ΠΊΠΈ:
HashMap
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. Π‘ΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ ΠΏΠ°Ρ βΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅β. Π₯ΡΡΠΈΡΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΡΡΠΈ, Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ Ρ ΡΡΠΈΡΡΡΡΡΡ. Π₯ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ Π²ΡΡΠ°Π²ΠΊΠ° Π² Π΄Π΅ΡΠ΅Π²ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΊΠ»ΡΡΠ΅ΠΉ.
Π‘ΡΡΠ»ΠΊΠΈ:
TreeMap
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. Π‘ΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ ΠΏΠ°Ρ βΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅β. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉ Π² Π²ΠΈΠ΄Π΅ Π΄Π΅ΡΠ΅Π²Π° Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ°. Π€ΡΠ½ΠΊΡΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΡΠ°Π²ΠΊΠΈ Π² Π΄Π΅ΡΠ΅Π²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅ΠΉ, Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ.
Π‘ΡΡΠ»ΠΊΠΈ:
WeakHashMap
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° Ρ ΡΡ ΡΠ°Π±Π»ΠΈΡΠ°Ρ ΡΠΎ ΡΠ»Π°Π±ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ. ΠΠ°ΠΏΠΈΡΠΈ Π² Π½Π΅ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π±ΡΠ΄ΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ βΠΌΡΡΠΎΡΠ°β, Π΅ΡΠ»ΠΈ ΠΊΠ»ΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ (Π½Π° Π½Π΅Π³ΠΎ Π½Π΅Ρ ΡΡΡΠ»ΠΎΠΊ, ΠΊΡΠΎΠΌΠ΅ WeakHashMap), ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΊΠ»ΡΡΠ° ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ WeakHashMap ΠΈ HashMap
Π‘ΡΡΠ»ΠΊΠΈ:
LinkedHashMap
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° Ρ ΡΡ-ΡΠ°Π±Π»ΠΈΡΠ°Ρ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π²Π²ΠΎΠ΄Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ Π² Π΄Π²ΡΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΌ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅. ΠΠΎΡΡΠ΄ΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΏΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ βΠ½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π΄Π°Π²Π½ΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌβ. Π‘ΠΎΡ ΡΠ°Π½ΡΡΡΡΡ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π° ΠΏΡΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ LinkedHashMap ΠΈ HashMap
ΠΠ±Π° LinkedHashMap ΠΈ HashMap ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Map. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ.
Π‘ΡΡΠ»ΠΊΠΈ:
EnumMap
ΠΠ»Π°ΡΡ EnumMap ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Map Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠ° enum Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ΅ΠΉ. ΠΡΠ΅ ΠΊΠ»ΡΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΏ enum ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°Π½ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ½ΡΡΡΠΈ Π΄Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΈΠ²Ρ. Π’Π°ΠΊΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½Π° ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°.
Π‘ΡΡΠ»ΠΊΠΈ:
IdentityHashMap
ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Map! Π₯ΠΎΡΡ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Map, ΠΎΠ½ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ Π½Π°ΡΡΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅Π΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° equals() ΠΏΡΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ° ΡΠ°Π²Π΅Π½ΡΡΠ²Π° ΡΡΡΠ»ΠΎΠΊ.
ΠΠ»Π°ΡΡ IdentityHashMap ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ
ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ Π½Π΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ hashCode(), Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ System.identityHashCode(). Π Π΄Π°Π½Π½ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Ρ
ΡΡ-ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΈΡΡ
ΠΎΠ΄Ρ ΠΈΠ· Π°Π΄ΡΠ΅ΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΠΏΠ° IdentityHashMap ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ==, Π° Π½Π΅ ΠΌΠ΅ΡΠΎΠ΄ equals().
Π‘ΡΡΠ»ΠΊΠΈ:
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ.
ΠΠΎΠ΄Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ
headSet()
tailSet()
headMap()
tailMap()
ΠΠ΅ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ
Π ΠΊΠ»Π°ΡΡΠ΅ Collections Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ. ΠΠ°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΏΠΎΠΏΡΡΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ
ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ Π΅Π΅ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠΠΌΠ΅ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π±ΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌΠΈ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ
ΠΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΡ ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ². ΠΡΠΈ Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΈΠΏΠ° Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° ClassCastException.
ΠΡΠΎΡΠ΅Π΅
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΠ²ΠΎΠΈΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ
ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ
ΠΠ·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ ΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π² ΠΌΠ°ΡΡΠΈΠ²
Π ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Interface Collection Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
Π£Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ java ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ²ΡΠΈΠ΅ΡΡ Π΄ΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ. ΠΠ½ΠΈ Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ.
ΠΠ΅ΡΠ°ΡΡ
ΠΈΡ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΡ
ΠΊΠ»Π°ΡΡΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ Hashtable, Properties
ΠΠ΅ΡΠ°ΡΡ
ΠΈΡ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΡ
ΠΊΠ»Π°ΡΡΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ Vector, Stack
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ Π² Java
Π£Π·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π² Java.
1. ΠΠ±Π·ΠΎΡ
ΠΡΠΎΡΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΠ°ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Π° Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ Java. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Apache Commons ΠΈ Π΄ΡΡΠ³ΠΈΠ΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π² ΡΠ²ΠΎΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ API.
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ ΡΡΠ΅Π½ΠΈΠ΅:
Π₯ΡΡ-ΠΊΠ°ΡΡΠ° Java ΠΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΊΠ°ΡΡΠ΅ Π½Π° Java
Java β ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ
2. ΠΡΠ½ΠΎΠ²Π½Π°Ρ Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Java
2.1. ΠΠ»Π°ΡΡ ΠΠ°Ρ
ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ Π¦Π΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π² Π‘ΡΡΠΎΠΊΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΏΠ°Ρ.
2.2. ΠΠ±ΡΡΡΠ°ΠΊΡΠ½Π°Ρ ΠΊΠ°ΡΡΠ°.SimpleEntry ΠΈ ΠΠ±ΡΡΡΠ°ΠΊΡΠΠ°Ρ ΠΊΠ°ΡΡΠ°.SimpleImmutableEntry
ΠΠΎΡΡΡΠΏ ΠΊ ΠΊΠ»ΡΡΡ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ»Π°ΡΡ AbstractMap ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΏΠ°ΡΡ, ΠΊΠ»Π°ΡΡ SimpleImmutableEntry :
3. ΠΠ±ΡΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ Apache
Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Apache Commons ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡΠΈ ΠΊΠ»Π°ΡΡ Pair Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ org.apache.commons.lang3.tuple|/. ΠΡΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ Π½Π΅Π»ΡΠ·Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°ΠΏΡΡΠΌΡΡ.
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡΠΈ Π΄Π²Π° ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΏΠ°ΡΡ, Imm utable ΠΠ°ΡΠ° ΠΈ ΠΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠ°Ρ ΠΏΠ°ΡΠ°.
ΠΠ±Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ/ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ/Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ:
ΠΠ΅ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ ΠΏΠΎΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ·Π²Π°ΡΡ ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ SET() Π½Π° ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½Π½Π°Ρ ΠΏΠ°ΡΠ° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ UnsupportedOperationException.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ° Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ:
4. ΠΠ°Π²Ρ
Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Vavr ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ Tuple2 :
Π ΡΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡΡΠΈΡΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅:
5. ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° I β ΠΠ»Π°ΡΡ ΠΡΠΎΡΡΡΡ ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²
ΠΠΈΠ±ΠΎ ΠΏΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π»ΠΈΠ±ΠΎ Π² ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΠΌ ΠΏΡΡΠ΅ΠΌ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΡΡΠ²Π°Π΅Ρ ΠΆΠ΅Π»Π°Π΅ΠΌΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
Π‘Π°ΠΌΡΠΌ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ Π·Π΄Π΅ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ Π½Π°ΡΠ΅ ΠΈΠΌΡ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π°Π»ΠΈΡΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄ΠΎΠΌΠ΅Π½Π°:
6. ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° II β ΠΠ°ΡΡΠΈΠ²Ρ
ΠΡΡΠ³ΠΈΠΌ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌ ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΠΌ ΠΏΡΡΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ Π΄Π²ΡΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²:
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΊΠ»ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π½ΡΠ»Π΅Π²ΠΎΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π°, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅.
7. ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΠ°Ρ Π² Java ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Java, Π° ΡΠ°ΠΊΠΆΠ΅ Π² Π΄ΡΡΠ³ΠΈΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ .