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

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

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

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° всСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΅Π΄ΠΈΠ½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ

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

Для очистки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ(), Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ обнуляСт количСство строк, освобоТдая ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ послС Π²Ρ‹Π·ΠΎΠ²Π° этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° коллСкция строк становится пустой, ΠΈ Π»ΡŽΠ±Ρ‹Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ индСксам ΠΏΡ€ΠΈΠ²Π΅Π΄ΡƒΡ‚ ΠΊ ошибкС, ΠΏΠΎΠΊΠ° Ρ‚Π°Π±Π»ΠΈΡ†Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π° вновь.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² ΠΊΠΎΠ΄Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°:

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹.ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ();

НоваяБтрока = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ();

НоваяБтрока.НомСнклатура = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.НомСнклатура.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡŽ("Π’ΠΎΠ²Π°Ρ€ А");

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, созданной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ, Π»ΠΎΠ³ΠΈΠΊΠ° остаСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΠΉ. ΠœΠ΅Ρ‚ΠΎΠ΄ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ() унивСрсалСн для всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΡƒΡŽ структуру. Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ дСйствиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ слСдуСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² с нуля.

πŸ’‘

ΠŸΡ€ΠΈ очисткС большой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Π±ΠΎΠ»Π΅Π΅ 10 000 строк) ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ() срабатываСт практичСски ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Ρ†ΠΈΠΊΠ» удалСния ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ нСсколько сСкунд. ВсСгда ΠΎΡ‚Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ встроСнным ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ.

πŸ’‘

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ() являСтся самым ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ способом удалСния всСх Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ссли Π½Π΅ трСбуСтся ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ строк.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ строки ΠΏΠΎ индСксу

Π’ ситуациях, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(). Он ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ индСкс строки ΠΈΠ»ΠΈ саму ссылку Π½Π° строку. Π˜Π½Π΄Π΅ΠΊΡΡ‹ Π² 1Π‘, ΠΊΠ°ΠΊ ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языках, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с нуля, Ρ‡Ρ‚ΠΎ часто становится ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ошибок Ρƒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ², ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΡˆΠΈΡ… ΠΊ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹.

ΠŸΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ строки ΠΊΡ€Π°ΠΉΠ½Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, сущСствуСт Π»ΠΈ ΠΎΠ½Π° Π²ΠΎΠΎΠ±Ρ‰Π΅. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ строку Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€Π΅Ρ€Π²Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. Для бСзопасной Ρ€Π°Π±ΠΎΡ‚Ρ‹ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Если.. Π’ΠΎΠ³Π΄Π° ΠΈΠ»ΠΈ провСряйтС количСство строк ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ().

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ бСзопасного удалСния строки ΠΏΠΎ индСксу:

Π˜Π½Π΄Π΅ΠΊΡΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ = 5;

Если Π˜Π½Π΄Π΅ΠΊΡΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ < Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() Π’ΠΎΠ³Π΄Π°

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Π˜Π½Π΄Π΅ΠΊΡΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ);

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

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ саму строку, Ссли ΠΎΠ½Π° ΡƒΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с курсором ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π³Π΄Π΅ Ρƒ вас Π΅ΡΡ‚ΡŒ ссылка Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт. Бинтаксис Π’Π°Π±Π»ΠΈΡ†Π°.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ понятным.

Π§Ρ‚ΠΎ происходит с индСксами послС удалСния?

ПослС удалСния строки с индСксом N, всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ Π²Π²Π΅Ρ€Ρ…. Π‘Ρ‚Ρ€ΠΎΠΊΠ°, которая Π±Ρ‹Π»Π° ΠΏΠΎΠ΄ индСксом N+1, станСт строкой с индСксом N. Π­Ρ‚ΠΎ критичСски Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ цикличСском ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ.

ЦикличСскоС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° смСщСния индСксов

НаиболСС слоТная Π·Π°Π΄Π°Ρ‡Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ нСсколько строк, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ количСством). Π—Π΄Π΅ΡΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ†ΠΈΠΊΠ» По ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ»ΠΈ Ρ†ΠΈΠΊΠ» с ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ счСтчика, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ пропуску строк.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ†ΠΈΠΊΠ»ΠΎΠ². Когда Π²Ρ‹ удаляСтС строку с индСксом i, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка с индСксом i+1 сдвигаСтся Π½Π° мСсто i. Если Ρ†ΠΈΠΊΠ» автоматичСски ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ счСтчик, ΠΎΠ½ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ индСксу i+1, пропуская Ρ‚Π΅ΠΌ самым строку, которая Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΡΠ΄Π²ΠΈΠ½ΡƒΠ»Π°ΡΡŒ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ каТдая вторая строка, подлСТащая ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ, остаСтся Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

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

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ β€” использованиС Ρ†ΠΈΠΊΠ»Π° Пока с Ρ€ΡƒΡ‡Π½Ρ‹ΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ индСксом. Если строка удаляСтся, индСкс Π½Π΅ увСличиваСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° Π΅Π³ΠΎ мСсто встала новая строка. Если строка Π½Π΅ удаляСтся, индСкс увСличиваСтся для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ» Для Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ = 0 По ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ()-1 с шагом 1 для удалСния строк ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ. Π’Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ пропуститС Ρ‡Π°ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌΡƒ расчСту ΠΈΡ‚ΠΎΠ³ΠΎΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΠΉ очистки

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8 ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ инструмСнты для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с коллСкциями. ΠœΠ΅Ρ‚ΠΎΠ΄ НайтиБтроки() позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ массив ссылок Π½Π° строки, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ. Однако Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ эффСктивным являСтся использованиС структуры ΠΎΡ‚Π±ΠΎΡ€Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΈΠ»ΠΈ спСциализированных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ.

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° для удалСния Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² с Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Ρ†Π΅Π½ΠΎΠΉ:

Для Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1 По 0 Π¦ΠΈΠΊΠ»

Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’ΠΎΠ²Π°Ρ€Π° = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹[Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ];

Если Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’ΠΎΠ²Π°Ρ€Π°.Π¦Π΅Π½Π° = 0 Π’ΠΎΠ³Π΄Π°

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ);

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

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

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

πŸ“Š Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ удалСния Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» "Для"
Π¦ΠΈΠΊΠ» "Пока" с Ρ€ΡƒΡ‡Π½Ρ‹ΠΌ индСксом
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
ΠœΠ΅Ρ‚ΠΎΠ΄ НайтиБтроки + Π£Π΄Π°Π»ΠΈΡ‚ΡŒ

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² удалСния

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с высоконагруТСнными систСмами, Π³Π΄Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ дСсятки тысяч ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, инвСнтаризация ΠΊΡ€ΡƒΠΏΠ½ΠΎΠ³ΠΎ склада), Π²Ρ‹Π±ΠΎΡ€ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° удалСния становится ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ΠΌ. Π Π°Π·Π½ΠΈΡ†Π° Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΡ‡ΠΈΡΠ»ΡΡ‚ΡŒΡΡ ΠΌΠΈΠ½ΡƒΡ‚Π°ΠΌΠΈ.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎΠ΅ врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ· 10 000 строк ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строки Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Π½Π° стандартном сСрвСрС:

ΠœΠ΅Ρ‚ΠΎΠ΄ удалСния ВрСмя выполнСния (мс) РСкомСндация
ΠŸΡ€ΡΠΌΠΎΠΉ Ρ†ΠΈΠΊΠ» (ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΉ) 150 НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ (пропуск строк)
Π¦ΠΈΠΊΠ» "Пока" с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ 450 Допустимо для ΠΌΠ°Π»Ρ‹Ρ… объСмов
ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» "Для" 320 ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π·Π°Π΄Π°Ρ‡
ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ() + Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ() 50 Π›ΡƒΡ‡ΡˆΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½Π΅

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

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° удалСния

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

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строк ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

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

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π»ΠΎΠ³ΠΈΠΊΠ° удалСния строк выносится Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ провСдСния. Если строка удаляСтся ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ двиТСния ΠΏΠΎ рСгистрам для этой Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ созданы. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ автоматичСски ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ, игнорируя ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ строки.

Однако, Ссли Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, которая ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ_manual_ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ. Π’ этом случаС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ строки ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π±Π΅Π· пСрСпровСдСния Π½Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· рСгистров. НСобходимо Π»ΠΈΠ±ΠΎ провСсти Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π·Π°Π½ΠΎΠ²ΠΎ, Π»ΠΈΠ±ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ записи ΠΈΠ· рСгистров, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΡ€Π°Π² администратора ΠΈ остороТности.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΡΠΌΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† рСгистров Π² ΠΎΠ±Ρ…ΠΎΠ΄ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² провСдСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ВсСгда ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ строки Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Π½Ρ‹ΠΌΠΈ заданиями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ чистят Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΡƒΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ описанныС Π²Ρ‹ΡˆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

МоТно Π»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строку Π² событии ΠŸΡ€ΠΈΠ˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ?

Π”Π°, Π½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΠ²Π°Π½ΠΈΡŽ событий. Если ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ строки Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, событиС ΠŸΡ€ΠΈΠ˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ сработаСт снова. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π»Π°Π³ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ событий.

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

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли ΠΌΠ΅Ρ‚ΠΎΠ΄ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ() Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ "ИндСкс Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°"?

Π­Ρ‚Π° ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ строкС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ сущСствуСт. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса: ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ строго мСньшС значСния, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ(). Π’Π°ΠΊΠΆΠ΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π° Π½Π΅ Π±Ρ‹Π»Π° ΠΎΡ‡ΠΈΡ‰Π΅Π½Π° Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… строках ΠΊΠΎΠ΄Π°.

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС строки, ΠΊΡ€ΠΎΠΌΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ?

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

ВлияСт Π»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ строк Π½Π° Π°Π²Ρ‚ΠΎΠ½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² строк Π² ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ…?

Π”Π°, влияСт. НомСра строк Π² ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ динамичСски Π½Π° основС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ индСкса Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ (ИндСкс + 1). ПослС удалСния строки ΠΈ сдвига индСксов, нумСрация Π² ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ автоматичСски пСрСсчитаСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠ°ΠΊΠ΅Ρ‚Π°.

МоТно Π»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строку, Ссли Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½?

ВСхничСски Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строку ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² ΠΊΠΎΠ΄Π΅, Π½ΠΎ измСнСния Π½Π΅ вступят Π² силу для рСгистров Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ провСдСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Если Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ заблокися ΠΎΡ‚ измСнСния Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, опСрация Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ошибкой.

Π•ΡΡ‚ΡŒ Π»ΠΈ Ρ€Π°Π·Π½ΠΈΡ†Π° Π² ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ строк Π² управляСмых ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ…?

Π›ΠΎΠ³ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с коллСкциями строк (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Ρ‚ΠΈΠΏΠ° Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ) ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Π° Π² ΠΎΠ±ΠΎΠΈΡ… Ρ‚ΠΈΠΏΠ°Ρ… Ρ„ΠΎΡ€ΠΌ. Π Π°Π·Π½ΠΈΡ†Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ лишь Π² способС получСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки ΠΈΠ· интСрфСйса: Π² управляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ… Ρ‡Π°Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ, Π° Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… β€” прямоС ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°ΠΌ Ρ„ΠΎΡ€ΠΌΡ‹.