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

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

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

Бинтаксис прямого присваивания ΠΏΠΎ индСксу

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

Рассмотрим Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π³Π΄Π΅ ΠΌΡ‹ создаСм массив чисСл ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ число Π½Π° строку ΠΈΠ»ΠΈ ссылку Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ объявлСния Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΡΠΌΡƒΡŽ запись:

Массив = Новый Массив;

Массив.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(10);

Массив.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(20);

Массив.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(30);

// ЗамСняСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ индСксу 2

Массив[2] = 200;

// Π’Π΅ΠΏΠ΅Ρ€ΡŒ массив содСрТит: 10, 200, 30

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

πŸ’‘

ВсСгда провСряйтС количСство элСмСнтов Ρ‡Π΅Ρ€Π΅Π· свойство Массив.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ индСксу, Ссли Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ динамичСски мСняСтся Π² Ρ†ΠΈΠΊΠ»Π΅.

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ элСмСнтов Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°

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

ΠŸΡ€ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Ρ†ΠΈΠΊΠ»Π°. ИспользованиС конструкции По Π¦ΠΈΠΊΠ» с ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сам элСмСнт ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Ссли Π²Ρ‹ просто пСрСприсваиваСтС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ†ΠΈΠΊΠ»Π°. Для ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²Π°ΠΌ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ΅Π½ доступ ΠΊ индСксу массива.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ всСх элСмСнтов для увСличСния ΠΈΡ… значСния:

Для ИндСкс = 1 По Массив.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() Π¦ΠΈΠΊΠ»

Если Π’ΠΈΠΏΠ—Π½Ρ‡(Массив[ИндСкс]) = Π’ΠΈΠΏ("Число") Π’ΠΎΠ³Π΄Π°

Массив[ИндСкс] = Массив[ИндСкс] * 2;

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

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

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

  • πŸ” Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ» Для с индСксом, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ элСмСнты inplace.
  • 🚫 Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ присваивания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ†ΠΈΠΊΠ»Π° Π² конструкции Для КаТдого.
  • ⚑ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ арифмСтичСскими опСрациями Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.
πŸ“Š Какой Ρ†ΠΈΠΊΠ» Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ для измСнСния Π΄Π°Π½Π½Ρ‹Ρ…?
Π¦ΠΈΠΊΠ» Для с индСксом
Π¦ΠΈΠΊΠ» Для КаТдого
Поиск ΠΏΠΎ индСксу
Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄

Π Π°Π±ΠΎΡ‚Π° с массивом структур

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

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

Рассмотрим ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ статус Π·Π°ΠΊΠ°Π·Π° Π² спискС:

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Π—Π°ΠΊΠ°Π·Π° = Массив[ИндСкс];

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Π—Π°ΠΊΠ°Π·Π°.Бтатус = "Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½";

// ИзмСнСния примСнятся автоматичСски ΠΊ элСмСнту массива

Однако, Ссли ваша Π·Π°Π΄Π°Ρ‡Π° β€” ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ структуру Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ с ΠΈΠ½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ»Π΅ΠΉ, Ρ‚ΠΎ прямоС присваиваниС Ρ‡Π΅Ρ€Π΅Π· индСкс Π±ΡƒΠ΄Π΅Ρ‚ СдинствСнным Π²Π΅Ρ€Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ позволяСт Π³ΠΈΠ±ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ составом ΠΏΠΎΠ»Π΅ΠΉ, Π½ΠΎ строгая типизация ΠΏΠΎΠ»Π΅ΠΉ структуры ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ создания Π½ΠΎΠ²ΠΎΠ³ΠΎ экзСмпляра.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ ссылочных Ρ‚ΠΈΠΏΠΎΠ²

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со структурами Π² массивС ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ пСрСмСнная, получСнная Ρ‡Π΅Ρ€Π΅Π· Массив[ИндСкс], содСрТит ссылку Π½Π° Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² памяти. ИзмСнСниС ΠΏΠΎΠ»Π΅ΠΉ Ρ‡Π΅Ρ€Π΅Π· эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ мСняСт Π΄Π°Π½Π½Ρ‹Π΅ Π² самом массивС.

Поиск ΠΈ Π·Π°ΠΌΠ΅Π½Π° ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ

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

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

Алгоритм поиска ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  1. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для хранСния индСкса Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта.
  2. ЗапуститС Ρ†ΠΈΠΊΠ» ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° массива.
  3. Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт с искомым ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅ΠΌ.
  4. ΠŸΡ€ΠΈ совпадСнии Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π·Π°ΠΌΠ΅Π½Ρƒ ΠΈ ΠΏΡ€Π΅Ρ€Π²ΠΈΡ‚Π΅ Ρ†ΠΈΠΊΠ» для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с большими объСмами Π΄Π°Π½Π½Ρ‹Ρ…, стоит Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ ΠΎΠ± использовании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ вмСсто массивов, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ встроСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ поиска ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ быстрСС Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈ Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ случаи

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

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: НС ΠΏΡƒΡ‚Π°ΠΉΡ‚Π΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнта (Массив.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ()) ΠΈ Π·Π°ΠΌΠ΅Π½Ρƒ Π΅Π³ΠΎ Π½Π° НСопрСдСлСно. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ сдвигаСт индСксы всСх ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ†ΠΈΠΊΠ»Π°, Ссли Π²Ρ‹ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ массив с ΠΊΠΎΠ½Ρ†Π° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ внСшниС ссылки Π½Π° индСксы.

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ нюансом являСтся Ρ€Π°Π±ΠΎΡ‚Π° с ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами (массив массивов). Π—Π΄Π΅ΡΡŒ Π·Π°ΠΌΠ΅Π½Π° значСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ указания индСкса для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ уровня влоТСнности. Ошибка Π² количСствС индСксов Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ сбою выполнСния ΠΊΠΎΠ΄Π°.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° бСзопасности Π·Π°ΠΌΠ΅Π½Ρ‹

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

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…

Π’Ρ‹Π±ΠΎΡ€ способа измСнСния Π΄Π°Π½Π½Ρ‹Ρ… зависит ΠΎΡ‚ контСкста Π·Π°Π΄Π°Ρ‡ΠΈ. ΠŸΡ€ΡΠΌΠΎΠ΅ присваиваниС Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ знания индСкса. Поиск с ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΎΠΌ унивСрсалСн, Π½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°Ρ…. ИспользованиС встроСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ (Ссли ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ) часто являСтся самым чистым Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΊΠΎΠ΄Π°.

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ сравнСниС основных ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΊ измСнСнию Π΄Π°Π½Π½Ρ‹Ρ… Π² зависимости ΠΎΡ‚ сцСнария использования:

ΠœΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π›ΡƒΡ‡ΡˆΠ΅Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅
ΠŸΡ€ΡΠΌΠΎΠΉ доступ [ИндСкс] Высокая Низкая Π˜Π·Π²Π΅ΡΡ‚Π΅Π½ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ элСмСнта
Π¦ΠΈΠΊΠ» Для с условиСм БрСдняя БрСдняя МассовоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ
Поиск с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ Низкая Высокая Единичная Π·Π°ΠΌΠ΅Π½Π° ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ
Π—Π°ΠΌΠ΅Π½Π° всСй структуры БрСдняя БрСдняя ПолноС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состава ΠΏΠΎΠ»Π΅ΠΉ

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ становится ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ дСсятков тысяч записСй. Для стандартных Π·Π°Π΄Π°Ρ‡ интСрфСйса ΠΈΠ»ΠΈ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΎΠΊ Ρ€Π°Π·Π½ΠΈΡ†Π° Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½Π° для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

πŸ’‘

ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π°ΠΌΠ΅Π½Ρ‹ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π·Π½Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ индСкс элСмСнта Π·Π°Ρ€Π°Π½Π΅Π΅. Если индСкс нСизвСстСн, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ этап поиска.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² управляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎ контСкстС выполнСния. Если массив находится Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π·Π°ΠΌΠ΅Π½Ρ‹ выполняСтся Π½Π° сСрвСрС, Π²Π°ΠΌ потрСбуСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ….

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

МоТно Π»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ массив ΠΏΡ€ΠΈ присваивании значСния ΠΏΠΎ Π½ΠΎΠ²ΠΎΠΌΡƒ индСксу?

НСт, Π² 1Π‘ нСльзя ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ индСксу, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива. Π­Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ выполнСния. Для добавлСния Π½ΠΎΠ²Ρ‹Ρ… элСмСнтов Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ() ΠΈΠ»ΠΈ Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ().

Как Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ элСмСнт, Ссли я знаю Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½ΠΎ Π½Π΅ индСкс?

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

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ структуру Π² массивС Π½Π° Π½ΠΎΠ²ΡƒΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ»Π΅ΠΉ?

Бтарая структура Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½ΠΎΠ²ΠΎΠΉ ссылкой. ВсС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· старой структуры Π±ΡƒΠ΄ΡƒΡ‚ утСряны, Ссли Π½Π° Π½ΠΈΡ… Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ссылок. Код, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ поля Π² этой ячСйкС, ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ свойствам.

ВлияСт Π»ΠΈ Π·Π°ΠΌΠ΅Π½Π° элСмСнта массива Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° этот массив?

Π”Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ массив являСтся ссылочным Ρ‚ΠΈΠΏΠΎΠΌ. Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ массив Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΈΠ»ΠΈ записали Π΅Π³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π±Π΅Π· клонирования, Ρ‚ΠΎ измСнСния, внСсСнныС ΠΏΠΎ индСксу, отразятся Π²ΠΎ всСх мСстах, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ эта ссылка Π½Π° массив.