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

ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ устроСн ΠΎΠ±Ρ…ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΡ‹ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, критичСски Π²Π°ΠΆΠ½ΠΎ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Π°ΡˆΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ. ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ тяТСлыС запросы ΠΊ SQL-сСрвСру для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠΈ с высокой ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ. Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π³Π΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹Π΅ суммы ΠΈΠ»ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ.

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

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ структура ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ

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

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

Для хранСния слоТных Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, строки Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части вмСстС с Π΅Π΅ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΎΠΉ, рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ структуры. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ, Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π΅ полями "НомСнклатура", "ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ" ΠΈ "Π¦Π΅Π½Π°", Π° Π·Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ эту структуру Π² ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Ссли Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° β€” это ускорит Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ встроСнному Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρƒ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ созданиС ΠΈ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅:

ΠœΠΎΡΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ = Новый ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ;

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚1 = "ΠŸΠ΅Ρ€Π²Π°Ρ запись";

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚2 = 100500;

ΠœΠΎΡΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚1);

ΠœΠΎΡΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚2);

Алгоритм пСрСноса Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„ΠΎΡ€ΠΌΡ‹ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ

Π‘Π°ΠΌΡ‹ΠΉ распространСнный сцСнарий использования β€” Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "РСализация Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²") Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ для Π°Π½Π°Π»ΠΈΠ·Π°. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ†ΠΈΠΊΠ» Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ строкам Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части Π’ΠΎΠ²Π°Ρ€Ρ‹. На ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΡ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для добавлСния.

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

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ здСсь являСтся свойство Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ значСния, Π° Π½Π΅ ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹, Ссли ваша Ρ†Π΅Π»ΡŒ β€” автономная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

β˜‘οΈ ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… для ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

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

Рассмотрим практичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€ пСрСноса Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°:

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡΠ’ΠΎΠ²Π°Ρ€ΠΎΠ² = Новый ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ;

Для КаТдого Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’ΠΎΠ²Π°Ρ€Π° Из Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹ Π¦ΠΈΠΊΠ»

НоваяБтруктура = Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°;

НоваяБтруктура.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("НомСнклатура", Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’ΠΎΠ²Π°Ρ€Π°.НомСнклатура);

НоваяБтруктура.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ", Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’ΠΎΠ²Π°Ρ€Π°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ);

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡΠ’ΠΎΠ²Π°Ρ€ΠΎΠ².Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(НоваяБтруктура);

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΈ поиска элСмСнтов

Когда Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹, наступаСт этап ΠΈΡ… Π°Π½Π°Π»ΠΈΠ·Π°. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ нСсколько способов ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Ρ†ΠΈΠΊΠ» Для ИндСкс = 1 По ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ порядком ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ позволяСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ элСмСнтам ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ ΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ.

Π‘ΠΎΠ»Π΅Π΅ соврСмСнный ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΉ способ β€” Ρ†ΠΈΠΊΠ» Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ. Он автоматичСски ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ всС записи ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ мСньшС ΠΊΠΎΠ΄Π°. Однако, Ссли Π² процСссС ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ элСмСнт ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот Ρ†ΠΈΠΊΠ» опасно, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π²ΠΎ врСмя ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкС выполнСния.

Для поиска ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ значСния сущСствуСт ΠΌΠ΅Ρ‚ΠΎΠ΄ Найти. Он Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта ΠΈΠ»ΠΈ 0, Ссли Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°, особСнно Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивах Π΄Π°Π½Π½Ρ‹Ρ….

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

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° прСдставлСно Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅:

ΠœΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Риск ошибки
Π¦ΠΈΠΊΠ» По Π˜Π½Π΄Π΅ΠΊΡΡƒ Высокая Максимальная Низкий
Π¦ΠΈΠΊΠ» Для КаТдого Высокая БрСдняя Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ (ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ)
ΠœΠ΅Ρ‚ΠΎΠ΄ Найти ΠžΡ‡Π΅Π½ΡŒ высокая Низкая (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ поиск) Низкий
πŸ“Š Какой способ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
Π¦ΠΈΠΊΠ» ΠΏΠΎ индСксу
Π¦ΠΈΠΊΠ» "Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ"
ΠœΠ΅Ρ‚ΠΎΠ΄ Найти
Π€ΠΈΠ»ΡŒΡ‚Ρ€ Ρ‡Π΅Ρ€Π΅Π· запрос

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ

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

Для слоТных условий Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠžΡ‚Π±ΠΎΡ€, Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с динамичСскими списками, Π½ΠΎ для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π»ΠΎΠ³ΠΈΠΊΠ° рСализуСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько условий Ρ‡Π΅Ρ€Π΅Π· логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ И, Π˜Π›Π˜, создавая ΠΌΠΎΡ‰Π½Ρ‹Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ прямо Π² ΠΊΠΎΠ΄Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ЭффСктивная Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ позволяСт ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ объСм Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ подсистСмы. ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ вСсь список ΠΈΠ· 1000 ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 5 ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Ρ… записСй, ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ с Π½Π΅ΠΉ. Π­Ρ‚ΠΎ экономит рСсурсы процСссора ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ слоТной Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ

Если Π²Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅Ρ‚Π΅ ΠΏΠΎ Π΄Π°Ρ‚Π΅, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ НачалоДня() ΠΈΠ»ΠΈ ΠšΠΎΠ½Π΅Ρ†Π”Π½Ρ(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок ΠΈΠ·-Π·Π° Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (часы, ΠΌΠΈΠ½ΡƒΡ‚Ρ‹, сСкунды), которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°Ρ… Ρ‚ΠΈΠΏΠ° Π”Π°Ρ‚Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² с Ρ†Π΅Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ срСднСй:

БрСдняяЦСна = 500;

ΠžΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½Π°ΡΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ = Новый ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ;

Для КаТдого Π’ΠΎΠ²Π°Ρ€ Из Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ Π¦ΠΈΠΊΠ»

Если Π’ΠΎΠ²Π°Ρ€.Π¦Π΅Π½Π° > БрСдняяЦСна Π’ΠΎΠ³Π΄Π°

ΠžΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½Π°ΡΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π’ΠΎΠ²Π°Ρ€);

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

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с коллСкциями, особСнно ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников, высок риск возникновСния ошибок. ΠŸΡƒΡΡ‚Ρ‹Π΅ значСния, нСсовпадСниС Ρ‚ΠΈΠΏΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° доступа ΠΊ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ структуры ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°.. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ слСдуСт ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ Π½Π° пустоту ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΊ свойствам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Если Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΏΠΎΠΏΠ°Π»ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлСно, ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρƒ Π½Π΅Π³ΠΎ свойство .НаимСнованиС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ критичСской ошибкС. ВсСгда провСряйтС Ρ‚ΠΈΠΏ значСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π’ΠΈΠΏΠ—Π½Ρ‡ ΠΏΠ΅Ρ€Π΅Π΄ слоТными опСрациями.

Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ошибок Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ. Π’ Π±Π»ΠΎΠΊΠ΅ Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ слСдуСт Π½Π΅ просто Π³Π°ΡΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π½ΠΎ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, какая ΠΈΠΌΠ΅Π½Π½ΠΎ строка Π²Ρ‹Π·Π²Π°Π»Π° сбой. Π­Ρ‚ΠΎ упростит ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ оставляйтС Π±Π»ΠΎΠΊ Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ пустым. Как ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚Π΅ сообщСниС ΠΎΠ± ошибкС Ρ‡Π΅Ρ€Π΅Π· Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(), ΠΈΠ½Π°Ρ‡Π΅ Π²Ρ‹ Π½Π΅ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅, ΠΏΠΎΠΊΠ° ΠΎΠ½Π° Π½Π΅ станСт критичСской.

Π¨Π°Π±Π»ΠΎΠ½ бСзопасной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

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

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ(ИндСкс);

// Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

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

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Ошибка ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ строки " + ИндСкс + ": " + ОписаниСОшибки());

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

πŸ’‘

ИспользованиС конструкции "ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°-Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅" Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° позволяСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ всю ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ, Π΄Π°ΠΆΠ΅ Ссли Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ элСмСнты содСрТат ошибки, вмСсто Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ всСй ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

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

Когда количСство записСй Π² Ρ„ΠΎΡ€ΠΌΠ΅ достигаСт тысяч (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ "ΠžΠ±ΠΎΡ€ΠΎΡ‚Π½ΠΎ-сальдовая Π²Π΅Π΄ΠΎΠΌΠΎΡΡ‚ΡŒ" Π·Π° Π³ΠΎΠ΄), нСэффСктивный ΠΎΠ±Ρ…ΠΎΠ΄ ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ зависанию интСрфСйса. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ ΠΈΠΌΠ΅Π΅Ρ‚ встроСнныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Yield, Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ. Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ², Π³Π΄Π΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ†ΠΈΠΊΠ» Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ большой ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ часто ΠΈΡΠΊΠ°Ρ‚ΡŒ элСмСнты ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ, рассмотритС использованиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° БоотвСтствиС вмСсто ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. БоотвСтствиС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Ρ…ΡΡˆ-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ обСспСчиваСт поиск Π·Π° константноС врСмя O(1), Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ поиск Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ O(N), Ρ‡Ρ‚ΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… N.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСдприятия. Π’ толстом ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΈΠ·-Π·Π° особСнностСй ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ сСрвСром. Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ тяТСлыС вычислСния Π½Π° сторонС сСрвСра, пСрСдавая Ρ‚ΡƒΠ΄Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π° Π½Π΅ всю ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ Π² Π½ΠΎΠ²Ρ‹Ρ… вСрсиях. ВсСгда провСряйтС синтаксис Π² справкС ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

Π‘Π΅ΠΊΡ€Π΅Ρ‚ скорости

ΠŸΠ΅Ρ€Π΅Π΄ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° сборщик мусора ΠΈ замСдляСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

FAQ: Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ количСство элСмСнтов Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ?

Для получСния количСства элСмСнтов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ свойство ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ. Оно Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ число. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ(). ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это свойство, Π° Π½Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄, хотя Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… контСкстах ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² зависимости ΠΎΡ‚ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π½ΠΎ стандартно это свойство.

МоТно Π»ΠΈ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Π² 1Π‘?

Π‘Π°ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ встроСнного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° сортировки. Для сортировки Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π’Π°Π±Π»ΠΈΡ†ΡƒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π³Π΄Π΅ доступСн ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ПослС сортировки Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΏΡ€ΠΈ нСобходимости.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ ΠΈ Массивом?

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ β€” типизация. Массив Π² 1Π‘ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ (Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…), Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ быстрСС ΠΈ экономнСС ΠΏΠΎ памяти. ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π° ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ значСния Π»ΡŽΠ±Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‡ΡƒΡ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΈΠ·-Π·Π° нСобходимости ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΎΡ‚ всСх элСмСнтов?

Для ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ удалСния всСх элСмСнтов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ(). ПослС Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° свойство ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ станСт Ρ€Π°Π²Π½Ρ‹ΠΌ 0, Π½ΠΎ сам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ останСтся Π² памяти ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован для добавлСния Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ элСмСнту ΠΏΠΎ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ индСксу?

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° доступа ΠΊ элСмСнту ΠΏΠΎ индСксу, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ большС количСства элСмСнтов ΠΈΠ»ΠΈ мСньшС 1, Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ИндСксOutsideRange. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Ρ€Π²Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Ссли эта ошибка Π½Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° конструкциСй ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°..Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.