Π Π°Π±ΠΎΡ‚Π° с иСрархичСскими структурами Π΄Π°Π½Π½Ρ‹Ρ… являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π”Π΅Ρ€Π΅Π²ΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ прСдоставляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для отобраТСния Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… списков, справочников с Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² с Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. Однако, нСсмотря Π½Π° удобство Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ доступ ΠΊ элСмСнтам этой структуры часто Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ вопросы Ρƒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… спСциалистов.

Основная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅Ρ€Π΅Π²ΠΎ β€” это Π½Π΅ просто плоский список. КаТдая строка ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ родитСля, Π΄Π΅Ρ‚Π΅ΠΉ ΠΈ собствСнныС свойства. ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ссылку Π½Π° ΡƒΠ·Π΅Π», ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… элСмСнтов ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ячСйки, критичСски Π²Π°ΠΆΠ½ΠΎ для написания эффСктивного ΠΊΠΎΠ΄Π°. Ошибки Π² Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π΄Π΅Ρ€Π΅Π²Ρƒ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ сущСствСнному сниТСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ»ΠΈ логичСским сбоям Π² Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ получСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· Π΄Π΅Ρ€Π΅Π²Π°, рассмотрим особСнности Ρ€Π°Π±ΠΎΡ‚Ρ‹ с коллСкциями строк ΠΈ ΠΏΠΎΠ»Π΅ΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ практичСскиС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ поиска ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠœΡ‹ Π·Π°Ρ‚Ρ€ΠΎΠ½Π΅ΠΌ ΠΊΠ°ΠΊ стандартныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‚Π°ΠΊ ΠΈ Π½ΡŽΠ°Π½ΡΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто ΡƒΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΈΠ· Π²ΠΈΠ΄Ρƒ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

АрхитСктура ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π”Π΅Ρ€Π΅Π²ΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ Π΅Π³ΠΎ свойства

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ извлСчСния Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ структуру ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π”Π΅Ρ€Π΅Π²ΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ состоит ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ строк (Π‘Ρ‚Ρ€ΠΎΠΊΠΈ) ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ (Колонки). КаТдая строка прСдставляСт собой ΡƒΠ·Π΅Π» Π΄Π΅Ρ€Π΅Π²Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² своих ячСйках ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ строки.

Для доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ строки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ коллСкция ЗначСния. ИмСнно здСсь хранятся фактичСскиС Π΄Π°Π½Π½Ρ‹Π΅: числа, строки, ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ структуры. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° эффСктивных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ понимания Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ссылкой Π½Π° строку Π΄Π΅Ρ€Π΅Π²Π° ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, хранящимся Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ этой строки. ΠŸΡƒΡ‚Π°Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ этими понятиями часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкам Ρ‚ΠΈΠΏΠ° "НСвСрный Ρ‚ΠΈΠΏ значСния".

КаТдая ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° Π΄Π΅Ρ€Π΅Π²Π° ΠΈΠΌΠ΅Π΅Ρ‚ свои свойства, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ имя, Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡˆΠΈΡ€ΠΈΠ½Ρƒ. ΠŸΡ€ΠΈ создании Π΄Π΅Ρ€Π΅Π²Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ явно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° Π² строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° выдаст ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ записью ΠΈΠ»ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ являСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ программирования.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Бвойство Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Ρƒ ΠΊΠΎΡ€Π½Π΅Π²Ρ‹Ρ… строк Π΄Π΅Ρ€Π΅Π²Π° ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлСно. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ свойствам родитСля Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ остановкС выполнСния ΠΊΠΎΠ΄Π°.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ стоит ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ свойству Π­Ρ‚ΠΎΠ“Ρ€ΡƒΠΏΠΏΠ°. Оно опрСдСляСт, ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ строка ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ строки часто ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ с ΠΈΠΊΠΎΠ½ΠΊΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ. Однако Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ этого Ρ„Π»Π°Π³Π° Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ β€” Π³Ρ€ΡƒΠΏΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пустой. Π›ΠΎΠ³ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ строками (Π»ΠΈΡΡ‚ΡŒΡΠΌΠΈ) Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ‡Π΅Ρ‚ΠΊΠΎ Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Π² вашСм Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅.

πŸ’‘

ΠŸΡ€ΠΈ создании Π΄Π΅Ρ€Π΅Π²Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ всСгда явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… для ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ. Π­Ρ‚ΠΎ ускорит Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ ошибки привСдСния Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΈ получСния ΡƒΠ·Π»ΠΎΠ²

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ β€” это прямая навигация ΠΏΠΎ индСксам. Если Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ элСмСнта Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€ΠΎΠΊΠΈ. НапримСр, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки Π΄Π΅Ρ€Π΅Π²Π° осущСствляСтся Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Π”Π΅Ρ€Π΅Π²ΠΎ.Π‘Ρ‚Ρ€ΠΎΠΊΠΈ[0]. Однако Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊΡ€Π°ΠΉΠ½Π΅ нСустойчив ΠΊ измСнСниям структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ€Π΅Π΄ΠΊΠΎ примСняСтся Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

Π‘ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ являСтся использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ позволяСт Π½Π°ΠΉΡ‚ΠΈ строку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ хранится искомоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Бинтаксис ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ указания значСния для поиска ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ (ΠΈΠ»ΠΈ индСкса). Π­Ρ‚ΠΎ основной инструмСнт для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ быстро Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ элСмСнт Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° всСго Π΄Π΅Ρ€Π΅Π²Π°.

Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π”Π΅Ρ€Π΅Π²Π° = Π”Π΅Ρ€Π΅Π²ΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π‘Ρ‚Ρ€ΠΎΠΊΠΈ.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ(Π˜ΡΠΊΠΎΠΌΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, "ΠšΠΎΠ΄ΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹");

Если Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π”Π΅Ρ€Π΅Π²Π° = НСопрСдСлСно Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½");

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

Π’Π°ΠΊΠΆΠ΅ сущСствуСт ΠΌΠ΅Ρ‚ΠΎΠ΄ НайтиБтроку, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ саму ссылку Π½Π° строку Π΄Π΅Ρ€Π΅Π²Π° Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Ρ‘ ΠΆΠ΅, Ссли ΠΎΠ½Π° сущСствуСт Π² Π΄Π΅Ρ€Π΅Π²Π΅. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ, Π½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ»Π΅Π·Π΅Π½ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ валидности ссылки, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ ΠΈΠ· внСшнСго источника ΠΈΠ»ΠΈ сохранСнной Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сущСствования строки ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Π΅Ρ‘ свойствам β€” ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ этап бСзопасного ΠΊΠΎΠ΄Π°.

  • πŸ” Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ: ΠŸΡ€ΡΠΌΠΎΠΉ доступ ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ, быстрый, Π½ΠΎ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ порядка.
  • πŸ” Поиск ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ: Основной ΠΌΠ΅Ρ‚ΠΎΠ΄ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ знания ΠΊΠ»ΡŽΡ‡Π° поиска.
  • πŸ” Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ: ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Ρ…ΠΎΠ΄ всСх строк, ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ, Π½ΠΎ рСсурсоСмкий Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ….

НС стоит Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ свойство ВСкущаяБтрока Π² контСкстС Ρ„ΠΎΡ€ΠΌ. Π₯отя это свойство относится ΠΊ элСмСнту Ρ„ΠΎΡ€ΠΌΡ‹ Π”Π΅Ρ€Π΅Π²ΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π° Π½Π΅ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, связь ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ тСсная. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ Π²Ρ‹ часто Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ строку ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, Π° Π·Π°Ρ‚Π΅ΠΌ ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΅Ρ‘ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

πŸ“Š Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ поиска Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
По индСксу
ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ
ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€
РСкурсивный ΠΎΠ±Ρ…ΠΎΠ΄

Π Π°Π±ΠΎΡ‚Π° с ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠ΅ΠΉ: Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ ΠΈ ΠŸΠΎΡ‚ΠΎΠΌΠΊΠΈ

Главная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²Π° β€” Π΅Π³ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ элСмСнта, сначала Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠ°Ρ строка Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Π° ΠΈΠ»ΠΈ просто сущСствуСт Π² памяти. Доступ ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… строк осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· свойство Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Ρƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ строки-родитСля. Π­Ρ‚ΠΎ рСкурсивная структура: Ρƒ строки-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ° Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ свойство Π‘Ρ‚Ρ€ΠΎΠΊΠΈ.

Частая Π·Π°Π΄Π°Ρ‡Π° β€” ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всСх ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°, нСзависимо ΠΎΡ‚ уровня влоТСнности. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ рСкурсивный ΠΎΠ±Ρ…ΠΎΠ΄. Π’Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ, которая ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ строку, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ саму сСбя для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΉ строки. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ пропуститС Π½ΠΈ ΠΎΠ΄ΠΈΠ½ элСмСнт, Π΄Π°ΠΆΠ΅ Ссли Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΡƒΡŽ структуру.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ родитСля элСмСнта выполняСтся Ρ‡Π΅Ρ€Π΅Π· свойство Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ. Если ΠΎΠ½ΠΎ Π½Π΅ Ρ€Π°Π²Π½ΠΎ НСопрСдСлСно, Π·Π½Π°Ρ‡ΠΈΡ‚, Ρƒ строки Π΅ΡΡ‚ΡŒ Π²Ρ‹ΡˆΠ΅ΡΡ‚ΠΎΡΡ‰ΠΈΠΉ ΡƒΠ·Π΅Π». Π­Ρ‚ΠΎ позволяСт Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ "подъСма" ΠΏΠΎ Π΄Π΅Ρ€Π΅Π²Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для опрСдСлСния ΠΏΠΎΠ»Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ Ρ‚ΠΎΠ²Π°Ρ€Π° ΠΈΠ»ΠΈ ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС.

Нюанс ΠΌΠ΅Ρ‚ΠΎΠ΄Π° НайтиБтроки

ΠœΠ΅Ρ‚ΠΎΠ΄ НайтиБтроки позволяСт Π½Π°ΠΉΡ‚ΠΈ Π½Π°Π±ΠΎΡ€ строк ΠΏΠΎ Π½Π°Π±ΠΎΡ€Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Он Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ строк, Ρ‡Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΡƒΠ·Π»ΠΎΠ² Π² Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΊΠ°Ρ… Π΄Π΅Ρ€Π΅Π²Π°.

Π’Π°ΠΆΠ½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ логичСски Π²Π»ΠΎΠΆΠ΅Π½Π° Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ, Π½ΠΎ Ссли свойство ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΠžΡ‚ΡΡ‚ΡƒΠΏΡ‹ ΠΈΠ»ΠΈ состояниС развСрнутости ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ, Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΈΠ½Π°Ρ‡Π΅. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ доступ всСгда опираСтся Π½Π° Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру связСй Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ-ΠŸΠΎΡ‚ΠΎΠΌΠΎΠΊ, Π° Π½Π΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π° экранС.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ строки-родитСля всС Π΅Ρ‘ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ строки Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ автоматичСски. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ сохранили Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΡƒΠ·Π»Π°.

Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ячССк ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ссылку Π½Π° Π½ΡƒΠΆΠ½ΡƒΡŽ строку Π΄Π΅Ρ€Π΅Π²Π°, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом являСтся ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ значСния. Доступ ΠΊ ячСйкам осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ЗначСния строки. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ячСйкС ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΠΎ Π΅Ρ‘ индСксу. ИспользованиС ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ становится Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ устойчивым ΠΊ измСнСнию порядка ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ получСния значСния: Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π”Π΅Ρ€Π΅Π²Π°.ЗначСния["Π¦Π΅Π½Π°"]. Если ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ Число, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Если Ρ‚ΠΈΠΏ Π‘Ρ‚Ρ€ΠΎΠΊΠ° β€” тСкстовоС. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° автоматичСски выполняСт ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ², Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΎΠ½ΠΈ совмСстимы. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ строку Π² Ρ‡ΠΈΡΠ»ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ выполнСния.

ΠœΠ΅Ρ‚ΠΎΠ΄ доступа Бинтаксис ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ
По ΠΈΠΌΠ΅Π½ΠΈ Π‘Ρ‚Ρ€ΠΎΠΊΠ°.ЗначСния["Имя"] НадСТно, Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎ, ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ индСкса
По индСксу Π‘Ρ‚Ρ€ΠΎΠΊΠ°.ЗначСния[0] Быстро, Π½ΠΎ ломаСтся ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ структуры
Π§Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π‘Ρ‚Ρ€ΠΎΠΊΠ°.ИмяКолонки Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ наличия свойства Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ строки

Для динамичСского Π°Π½Π°Π»ΠΈΠ·Π° структуры Π΄Π΅Ρ€Π΅Π²Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Колонки самого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄Π΅Ρ€Π΅Π²Π°. ΠŸΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ эту ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π° всСх доступных ΠΏΠΎΠ»Π΅ΠΉ, ΠΈΡ… Ρ‚ΠΈΠΏΡ‹ ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ значСния для любой строки. Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ написании ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ конфигурациями Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² Π±Π΅Π· ТСсткой привязки ΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΏΠΎΠ»Π΅ΠΉ.

Π—Π°ΠΏΠΈΡΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π² ячСйку происходит Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ. Π’Ρ‹ присваиваСтС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойству ячСйки. Π’Π°ΠΆΠ½ΠΎ: Ссли Π²Ρ‹ измСняСтС Π΄Π°Π½Π½Ρ‹Π΅ Π² Π΄Π΅Ρ€Π΅Π²Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ связано с элСмСнтом Ρ„ΠΎΡ€ΠΌΡ‹, измСнСния ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒΡΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях трСбуСтся явный Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² обновлСния интСрфСйса.

πŸ’‘

ИспользованиС ΠΈΠΌΠ΅Π½ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ вмСсто индСксов ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°. Если Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ Π² Π½Π°Ρ‡Π°Π»ΠΎ списка, ΠΊΠΎΠ΄ с индСксами сломаСтся, Π° ΠΊΠΎΠ΄ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

Π Π°Π±ΠΎΡ‚Π° с Π΄Π΅Ρ€Π΅Π²ΡŒΡΠΌΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, содСрТащими тысячи ΠΈ дСсятки тысяч строк, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ особого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Основной "ΡƒΠ·ΠΊΠΈΠΌ мСстом" являСтся рСкурсивный ΠΎΠ±Ρ…ΠΎΠ΄ ΠΈ частыС обращСния ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ строк. КаТдоС ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ свойству Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ поиска ΠΈΠΌΠ΅Π΅Ρ‚ свою Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ. ΠŸΡ€ΠΈ нСэффСктивной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Один ΠΈΠ· способов ускорСния β€” использованиС индСксов. Π’ 1Π‘ Π½Π΅Ρ‚ явных индСксов для Π”Π΅Ρ€Π΅Π²Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠ°ΠΊ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ БоотвСтствиС (Map), Π³Π΄Π΅ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ΄ элСмСнта), Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ β€” ссылка Π½Π° строку Π΄Π΅Ρ€Π΅Π²Π°. Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ соотвСтствия ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π΅Ρ€Π΅Π²Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ врСмя, Π½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ поиск становится ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΌ.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΎΠ΄ΠΈΠ½ элСмСнт, Π½Π΅ стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎ всСму Π΄Π΅Ρ€Π΅Π²Ρƒ, Ссли ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ обновлСния экрана (Ссли Π΄Π΅Ρ€Π΅Π²ΠΎ связано с Ρ„ΠΎΡ€ΠΌΠΎΠΉ) Π½Π° врСмя массовых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ускоряСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°.

  • πŸš€ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ БоотвСтствиС для ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ссылок Π½Π° часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΡƒΠ·Π»Ρ‹.
  • πŸš€ ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ интСрфСйса ΠΏΡ€ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ вставкС Π΄Π°Π½Π½Ρ‹Ρ….
  • πŸš€ Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΉ.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½Ρ‹ΠΉ аспСкт β€” очистка рСсурсов. Если Π²Ρ‹ создаСтС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΈΠ»ΠΈ Π² Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡƒΡ‰ΠΈΡ… процСссах, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ссылки Π½Π° Π½ΠΈΡ… ΠΎΠ±Π½ΡƒΠ»ΡΡŽΡ‚ΡΡ послС использования. Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ мусора 1Π‘ эффСктивСн, Π½ΠΎ лишниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² памяти ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ потрСблСния ΠžΠ—Π£ сСрвСром ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Глубокая Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²Π° (Π±ΠΎΠ»Π΅Π΅ 100 ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ) ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ стСка ΠΏΡ€ΠΈ рСкурсивном ΠΎΠ±Ρ…ΠΎΠ΄Π΅. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ со стСком Π² Π²ΠΈΠ΄Π΅ массива ΠΈΠ»ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ.

β˜‘οΈ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

ЧастыС ошибки ΠΈ способы ΠΈΡ… устранСния

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π”Π΅Ρ€Π΅Π²ΠΎΠΌΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Ρ‚ΠΈΠΏΠΎΠ²Ρ‹ΠΌΠΈ ошибками. Одна ΠΈΠ· самых распространСнных β€” ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ свойству строки, которая Π±Ρ‹Π»Π° ΡƒΠ΄Π°Π»Π΅Π½Π° ΠΈΠ»ΠΈ Π΅Ρ‰Π΅ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² Π΄Π΅Ρ€Π΅Π²ΠΎ. Бсылка Π½Π° строку становится Π½Π΅Π²Π°Π»ΠΈΠ΄Π½ΠΎΠΉ сразу послС Π΅Ρ‘ удалСния ΠΈΠ· Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π›ΡŽΠ±ΠΎΠ΅ дСйствиС с Ρ‚Π°ΠΊΠΎΠΉ ссылкой Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Другая частая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° связана с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ Π»Π΅ΠΆΠΈΡ‚ Число, Π° Ρ‚Π°ΠΌ хранится Π‘Ρ‚Ρ€ΠΎΠΊΠ° с числовым Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сравнСния ΠΈΠ»ΠΈ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ Π² Ρ‚Π°ΠΊΠΎΠΌ случаС Π½Π΅ ΡΡ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ВипЗначСния ΠΈΠ»ΠΈ провСряйтС Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ дСйствий, Ссли источник Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½.

Ошибки Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΡŽΡŽ строку ΠΊ элСмСнту, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ снят Ρ„Π»Π°Π³ Π­Ρ‚ΠΎΠ“Ρ€ΡƒΠΏΠΏΠ°. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ° ΠΊ листовому элСмСнту. ΠŸΠ΅Ρ€Π΅Π΄ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ влоТСнности Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΡƒΠ·Π΅Π» настроСн ΠΊΠ°ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ°. Π­Ρ‚ΠΎ логичСскоС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ структуры Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ нСльзя ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π±Π΅Π· измСнСния свойств строки.

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°

НоваяБтрока = Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ.Π‘Ρ‚Ρ€ΠΎΠΊΠΈ.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ();

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("НСльзя Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ° ΠΊ Π½Π΅-Π³Ρ€ΡƒΠΏΠΏΠ΅");

ΠšΠΎΠ½Π΅Ρ†ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠΈ;

НаконСц, стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ "потСрянного контСкста". ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ссылок Π½Π° строки Π΄Π΅Ρ€Π΅Π²Π° Π² ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ БСриализация ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Ρ‚Π°ΠΊΠΈΡ… ссылок ΠΌΠ΅ΠΆΠ΄Ρƒ процСссами Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°. ΠŸΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ значСния Π΄Π°Π½Π½Ρ‹Ρ… (ΠΊΠΎΠ΄Ρ‹, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹), Π° Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ строк Π΄Π΅Ρ€Π΅Π²Π°.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ†ΠΈΠΊΠ»?

Если Π²Ρ‹ удаляСтС строки ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π² Ρ†ΠΈΠΊΠ»Π΅ "Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ", ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ±ΠΈΡ‚ΡŒΡΡ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ» "Пока" с индСксом ΠΈΠ»ΠΈ собирайтС список Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования Π² конфигурациях

Рассмотрим Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ сцСнарий: Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° ΠΏΠΎ складским остаткам с Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ ΠΏΠΎ Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Π½Ρ‹ΠΌ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ. Π—Π΄Π΅ΡΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для отобраТСния ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ создаСм ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ: "Π“Ρ€ΡƒΠΏΠΏΠ°", "НомСнклатура", "ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ", "Π‘ΡƒΠΌΠΌΠ°". Π—Π°Ρ‚Π΅ΠΌ Π² Ρ†ΠΈΠΊΠ»Π΅ заполняСм Π΄Π΅Ρ€Π΅Π²ΠΎ, создавая Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΈ вкладывая Π² Π½ΠΈΡ… Ρ‚ΠΎΠ²Π°Ρ€Ρ‹.

Для получСния ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹Ρ… сумм ΠΏΠΎ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС возмоТности Π΄Π΅Ρ€Π΅Π²Π° ΠΈΠ»ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ свой ΠΎΠ±Ρ…ΠΎΠ΄. Если Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚ΠΎΠ²Π°Ρ€ ΠΏΠΎ Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»Ρƒ, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΏΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ "Артикул". ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² строку, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Ρ‘ Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Ρ‘ Ρ†Π²Π΅Ρ‚, привлСкая Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΊ Π΄Π΅Ρ„ΠΈΡ†ΠΈΡ‚Π½ΠΎΠΌΡƒ Ρ‚ΠΎΠ²Π°Ρ€Ρƒ.

Π’ Π·Π°Π΄Π°Ρ‡Π°Ρ… ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π΄Π΅Ρ€Π΅Π²ΠΎ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для прСдставлСния структуры ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… мСст. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ значСния здСсь ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΏΡƒΡ‚Π΅ΠΌ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅Π½ всСх Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΡƒΠ·Π»ΠΎΠ² ΠΎΡ‚ корня Π΄ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта. Π­Ρ‚ΠΎ классичСская Π·Π°Π΄Π°Ρ‡Π° Π½Π° Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ ΠΏΠΎ родитСлям Π΄ΠΎ корня.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” настройка ΠΏΡ€Π°Π² доступа. Π”Π΅Ρ€Π΅Π²ΠΎ позволяСт наглядно ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ структуру ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… Ρ€ΠΎΠ»Π΅ΠΉ. Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ значСния Π² Π΄Π°Π½Π½ΠΎΠΌ случаС β€” это ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ„Π»Π°Π³Π° доступа Ρƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ сотрудника Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΡƒΠ·Π»Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ структуры. Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π”Π΅Ρ€Π΅Π²ΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌ инструмСнтом Π² арсСналС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° 1Π‘.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ доступныС свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ vs таксономия). ВсСгда ΡΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ΡΡŒ со справкой ΠΏΠΎ вашСй вСрсии.

πŸ’‘

Π”Π΅Ρ€Π΅Π²ΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ β€” это Π½Π΅ просто способ отобраТСния, это полноцСнная структура Π΄Π°Π½Π½Ρ‹Ρ… Π² памяти, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ эффСктивно Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π±Π΅Π· обращСния ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всС Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ строки рСкурсивно?

Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ строку Π΄Π΅Ρ€Π΅Π²Π°. Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» ΠΏΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΉ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΉ строки ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ саму сСбя. Π‘Π°Π·ΠΎΠΉ рСкурсии слуТит условиС отсутствия Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… строк.

МоТно Π»ΠΈ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строки Π² Π΄Π΅Ρ€Π΅Π²Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ?

Π”Π°, Ρƒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ строк Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сортировки (возрастаниС ΠΈΠ»ΠΈ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΠ΅).

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ НСопрСдСлСно?

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ строка с искомым Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ отсутствуСт, нСсовпадСниС Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… (число ΠΈ строка), ΠΈΠ»ΠΈ поиск вСдСтся ΠΏΠΎ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΈ ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΏΠ΅Ρ€Π΅Π΄ поиском.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ?

Для ΠΏΠΎΠ»Π½ΠΎΠΉ очистки Π΄Π΅Ρ€Π΅Π²Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ(), Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹ΠΉ Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄Π΅Ρ€Π΅Π²Π°. Π­Ρ‚ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ всС строки, Π½ΠΎ сохранит структуру ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ. Если Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Ρ‚ΠΎΠΆΠ΅, Π΄Π΅Ρ€Π΅Π²ΠΎ слСдуСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ Ρ‡Π΅Ρ€Π΅Π· конструктор НовоСДСрСвоЗначСний().

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π”Π΅Ρ€Π΅Π²ΠΎΠΌΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ Π’Π°Π±Π»ΠΈΡ†Π΅ΠΉΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ?

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ β€” Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ. Π’ Π’Π°Π±Π»ΠΈΡ†Π΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ всС строки плоскиС ΠΈ Ρ€Π°Π²Π½ΠΎΠΏΡ€Π°Π²Π½Ρ‹Π΅. Π’ Π”Π΅Ρ€Π΅Π²Π΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ строки ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈ Π΄Π΅Ρ‚Π΅ΠΉ. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ схоТи, Π½ΠΎ навигация ΠΏΠΎ структурС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ отличаСтся.