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

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

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

АрхитСктура ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…

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

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

πŸ’‘

ВсСгда провСряйтС свойство Β«ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΒ» ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ пуста. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ обращСния ΠΊ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ индСксам.

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ ΠΏΠΎ содСрТимому ячССк. Поиск строки для удалСния всСгда Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ сортировки, Ссли Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ поиск.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ удалСния строки: Clear ΠΈ Remove

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

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

Бинтаксис Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ прост ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятСн. Для очистки содСрТимого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ строкС ΠΊΠ°ΠΊ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, Π° для удалСния β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ самой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ:

// ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² строкС с индСксом 0

Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ[0].Clear();

// ПолноС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ строки с индСксом 0

Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Remove(0);

ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Remove() Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ особой остороТности ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ². ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ индСксы ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ, классичСский Ρ†ΠΈΠΊΠ» Β«ΠΎΡ‚ 0 Π΄ΠΎ ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ-1Β» ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ пропуску строк ΠΈΠ»ΠΈ ошибкС Π²Ρ‹Ρ…ΠΎΠ΄Π° Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· самых частых ошибок Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… программистов 1Π‘, которая Π»Π΅Π³ΠΊΠΎ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ направлСния Ρ†ΠΈΠΊΠ»Π° ΠΈΠ»ΠΈ использованиСм ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… конструкций ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

πŸ“Š Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ для очистки Π΄Π°Π½Π½Ρ‹Ρ…?
Clear() (ΠΎΠ±Π½ΡƒΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ)
Remove() (ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ строки)
ΠŸΠ΅Ρ€Π΅ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
ИспользованиС запроса

Алгоритмы бСзопасного удалСния Π² Ρ†ΠΈΠΊΠ»Π΅

Бамая слоТная Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π½Π΅ ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ строку ΠΏΠΎ извСстному индСксу, Π° нСсколько строк, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ. НапримСр, трСбуСтся ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· ΠΎΡ‚Ρ‡Π΅Ρ‚Π° всС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ количСством ΠΈΠ»ΠΈ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹. ΠŸΡ€ΡΠΌΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π² Ρ†ΠΈΠΊΠ»Π΅ «Пока» ΠΈΠ»ΠΈ «Для» с возрастаниСм индСкса являСтся Π³Ρ€ΡƒΠ±ΠΎΠΉ ошибкой.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ: Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΠ· 5 строк, ΠΈ Π²Ρ‹ удаляСтС строку с индСксом 1. Π‘Ρ‚Ρ€ΠΎΠΊΠ° с индСксом 2 ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ становится строкой с индСксом 1. Если Ρ†ΠΈΠΊΠ» ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ обратится ΠΊ индСксу 2, ΠΎΠ½ пропустит Ρ‚Ρƒ строку, которая Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΡΠ΄Π²ΠΈΠ½ΡƒΠ»Π°ΡΡŒ Π½Π° мСсто ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… останСтся Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого, сущСствуСт нСсколько ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² программирования.

НаиболСС Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ способ β€” использованиС Ρ†ΠΈΠΊΠ»Π° с ΡƒΠ±Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ индСксом. Π’ этом случаС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ строки с большим индСксом Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ влияСт Π½Π° индСксы строк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Π΅ прСдстоит ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ (ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ мСньшиС Π½ΠΎΠΌΠ΅Ρ€Π°). Π›ΠΎΠ³ΠΈΠΊΠ° остаСтся простой ΠΈ прСдсказуСмой:

Для ИндСкс = Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1 По 0 Π¦ΠΈΠΊΠ»

Если Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ[ИндСкс].Π‘ΡƒΠΌΠΌΠ° = 0 Π’ΠΎΠ³Π΄Π°

Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Remove(ИндСкс);

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

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

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

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

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

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

Когда объСм Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ исчисляСтся дСсятками ΠΈΠ»ΠΈ сотнями тысяч строк, Π½Π°ΠΈΠ²Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ удалСния ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ Β«ΡƒΠ·ΠΊΠΈΠΌ Π³ΠΎΡ€Π»Ρ‹ΡˆΠΊΠΎΠΌΒ» ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. КаТдая опСрация Remove() Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ сдвига памяти, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ O(N). Если Π²Ρ‹ удаляСтС ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΈΠ· 100 000 записСй Π² Ρ†ΠΈΠΊΠ»Π΅, суммарноС врСмя выполнСния ΠΌΠΎΠΆΠ΅Ρ‚ вырасти Π΄ΠΎ Π½Π΅ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

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

Π•Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ эффСктивным способом, особСнно Ссли Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ ΠΈΠ· Π±Π°Π·Ρ‹, являСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π±ΠΎΡ€Π° Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ запроса. ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ всС Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ Ρ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡ… Π² ΠΊΠΎΠ΄Π΅ 1Π‘, Π»ΡƒΡ‡ΡˆΠ΅ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запрос с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π“Π”Π•, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сразу Π²Π΅Ρ€Π½Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ записСй. Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ с процСссора прилоТСния Π½Π° сСрвСр Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ справляСтся с Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Π³ΠΎΡ€Π°Π·Π΄ΠΎ эффСктивнСС.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ ΠΈ настройки ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ (ΡˆΠΈΡ€ΠΈΠ½Ρƒ, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, Ρ‚ΠΈΠΏΡ‹), Ссли ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для отобраТСния Π² Ρ„ΠΎΡ€ΠΌΠ΅.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ запрос быстрСС Ρ†ΠΈΠΊΠ»Π°?

Π‘Π΅Ρ€Π²Π΅Ρ€ Π‘Π£Π‘Π” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ индСксы ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ запросов для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ Π² Ρ†ΠΈΠΊΠ»Π΅ 1Π‘ происходит ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ, игнорируя индСксы Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΏΡ€ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ….

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ строк

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

ΠœΠ΅Ρ‚ΠΎΠ΄ Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ВлияниС Π½Π° индСксы Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅
Clear() Низкая НСт Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ скрытиС Π΄Π°Π½Π½Ρ‹Ρ…, сброс Ρ„ΠΎΡ€ΠΌΡ‹
Remove(ИндСкс) БрСдняя (сдвиг) Π‘Π΄Π²ΠΈΠ³ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Ρ… записСй, ΠΌΠ°Π»Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π½ΠΎΠ²ΡƒΡŽ Высокая (ΠΏΠ°ΠΌΡΡ‚ΡŒ) НСт (новая коллСкция) Массовая Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ, большиС ΠΎΠ±ΡŠΠ΅ΠΌΡ‹
Запрос с ΠΎΡ‚Π±ΠΎΡ€ΠΎΠΌ Минимальная Н/Π” ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Π°Ρ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π‘Π”

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅ сущСствуСт. Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Π³Π΄Π΅ строк ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 50, ΠΌΠ΅Ρ‚ΠΎΠ΄ Remove() Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ простым Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅. Если ΠΆΠ΅ Π²Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ аналитичСский ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΏΠΎ всСму складу, Π»ΡƒΡ‡ΡˆΠ΅ сразу ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ запрос.

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΠšΠΎΠ»ΠΎΠ½ΠΊΠΈ(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠΎΠ»Π½ΠΎΠΉ пСрСзаписи Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ это ΡƒΠΆΠ΅ относится ΠΊ Π·Π°ΠΌΠ΅Π½Π΅ содСрТимого, Π° Π½Π΅ ΠΊ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎΠΉ очисткС строк. Π’Π°ΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ баланс ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ΄Π° ΠΈ Π΅Π³ΠΎ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ.

πŸ’‘

Для массового удалСния строк ΠΈΠ· большой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ созданиС Π½ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с ΠΎΡ‚Π±ΠΎΡ€ΠΎΠΌ ΠΈΠ»ΠΈ SQL-запрос, Π° Π½Π΅ Ρ†ΠΈΠΊΠ» с Remove().

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΊΠΎΠ΄Π°

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

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

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

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

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

МоТно Π»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строку ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅, Π½Π΅ зная Π΅Ρ‘ индСкса?

ΠΠ°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° RemoveByValue Π½Π΅ сущСствуСт. Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ сначала Π½Π°ΠΉΡ‚ΠΈ индСкс строки с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Найти(), ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π² Π½Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† строки ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ индСкс Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ Remove().

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Remove() для Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ индСкса?

БистСма выдаст ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ «ИндСкс Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°Β». ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Ρ€Π²Π΅Ρ‚ своС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Ссли ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ конструкциСй ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°..Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. ВсСгда провСряйтС, Ρ‡Ρ‚ΠΎ индСкс мСньшС свойства ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ().

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ всю Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ сразу?

Для ΠΏΠΎΠ»Π½ΠΎΠΉ очистки Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΎΡ‚ всСх строк ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ() (Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²). Он удаляСт всС строки, Π½ΠΎ сохраняСт структуру ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ. Π­Ρ‚ΠΎ Π°Π½Π°Π»ΠΎΠ³ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Remove(0), Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ.

ВлияСт Π»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ строки Π½Π° ссылки Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ строки этой ΠΆΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹?

Π”Π°, влияСт. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ строки ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ, Π»ΡŽΠ±Ρ‹Π΅ сохранСнныС Ρ€Π°Π½Π΅Π΅ индСксы станут Π½Π΅Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Если Π²Ρ‹ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈ индСкс строки Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ для использования послС удалСния Π΄Ρ€ΡƒΠ³ΠΎΠΉ строки, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот индСкс (ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Π½Π° 1), Ссли удалСнная строка ΠΈΠΌΠ΅Π»Π° индСкс мСньшС сохранСнного.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π’Π°Π±Π»ΠΈΡ†Ρƒ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² запросС послС удалСния строк?

Π”Π°, ΠΌΠΎΠΆΠ½ΠΎ. Π’Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована ΠΊΠ°ΠΊ источник Π΄Π°Π½Π½Ρ‹Ρ… для запроса Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚. ИзмСнСния, внСсСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Remove ΠΈΠ»ΠΈ Clear, сразу ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² Π΄Π°Π½Π½Ρ‹Ρ…, доступных для запроса. Π“Π»Π°Π²Π½ΠΎΠ΅ β€” ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ структура ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ соотвСтствуСт оТиданиям запроса.