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

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

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

Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ отличия массивов ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ

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

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

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими массивами (Π±ΠΎΠ»Π΅Π΅ 100 000 элСмСнтов) ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ опСрация вставки элСмСнта Π² Π½Π°Ρ‡Π°Π»ΠΎ ΠΈΠ»ΠΈ сСрСдину массива Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ сдвига всСх ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ сущСствСнно Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°.

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

Π₯арактСристика Массив БписокЗначСний Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ Числовая (0..N) Числовая + Поиск ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ
Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ чтСния Максимальная Высокая БрСдняя (зависит ΠΎΡ‚ индСксов)
Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π›ΡŽΠ±Ρ‹Π΅ (Π³Π΅Ρ‚Π΅Ρ€ΠΎΠ³Π΅Π½Π½Ρ‹Π΅) Π›ΡŽΠ±Ρ‹Π΅ Бтрогая типизация ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ
ΠŸΠ°ΠΌΡΡ‚ΡŒ Минимальная БрСдняя Высокая (ΠΎΠ²Π΅Ρ€Ρ…Π΅Π΄ структуры)
Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π’Ρ€ΡƒΡ‡Π½ΡƒΡŽ (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹) ВстроСнный ΠΌΠ΅Ρ‚ΠΎΠ΄ ВстроСнный ΠΌΠ΅Ρ‚ΠΎΠ΄
πŸ’‘

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ для быстрого доступа ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ, рассмотритС использованиС Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ БоотвСтствия вмСсто массива, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ доступ O(1) ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ массив Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ поиска.

ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы: Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ синтаксис

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

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

β˜‘οΈ ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌ массивом

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° дСмонстрируСт простоту Ρ€Π°Π±ΠΎΡ‚Ρ‹ с элСмСнтами:

ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ… = Новый Массив();

ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ….Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт");

ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ….Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(123);

ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ….Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(ВСкущаяДата());

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ… Π¦ΠΈΠΊΠ»

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

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

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

ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ структуры ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ массивы

Когда Ρ€Π΅Ρ‡ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎ слоТных Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ приходят ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы. Π’ 1Π‘ Π½Π΅Ρ‚ строгого понятия "Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива" ΠΊΠ°ΠΊ Π² классичСских языках программирования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, C++ ΠΈΠ»ΠΈ Pascal). ВмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ концСпция влоТСнности: элСмСнт массива сам ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ массивом. Π­Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ структуры любой Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ ΠΈ слоТности, имитируя ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Π΄Π΅Ρ€Π΅Π²ΡŒΡ ΠΈΠ»ΠΈ Π³Ρ€Π°Ρ„Ρ‹ Π² памяти.

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Глубокая Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ массивов (Π±ΠΎΠ»Π΅Π΅ 5-7 ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ) ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ риск возникновСния ошибок индСксации. Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ слоТныС структуры Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ спСциализированныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Для доступа ΠΊ элСмСнту Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ массива ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° индСксов. Бинтаксис выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: Массив[ИндСкс1][ИндСкс2]. Π­Ρ‚ΠΎ обСспСчиваСт прямой доступ ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ Π΄Π°Π½Π½Ρ‹Π΅ Π±Π΅Π· нСобходимости ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Однако, ΠΏΡ€ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ‚Π°ΠΊΠΈΠΌ структурам рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ бСзопасным.

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ 3x3 Π² 1Π‘?

Для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ внСшний массив Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3, Π° Π·Π°Ρ‚Π΅ΠΌ Π² Ρ†ΠΈΠΊΠ»Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π΅Π³ΠΎ элСмСнт Π½ΠΎΠ²Ρ‹ΠΌ массивом Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3. ΠŸΡ€ΡΠΌΠΎΠ΅ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΈ создании Π½Π΅ создаст Π²Π»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ структуру автоматичСски.

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

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

Вопрос ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ стоит особСнно остро ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² 1Π‘. ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых быстрых инструмСнтов для манипуляции Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ доступа ΠΊ элСмСнту ΠΏΠΎ индСксу являСтся константной Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ O(1), Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… Π±Π΅Π·Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ Π»ΠΈΠ΄Π΅Ρ€ΠΎΠΌ Π² сцСнариях, Π³Π΄Π΅ трСбуСтся ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… элСмСнтов.

Однако, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π½ΡŽΠ°Π½ΡΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½ΠΈΠ²Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ прСимущСства массивов. НапримСр, опСрация поиска элСмСнта ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π² нСсортированном массивС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° всСх элСмСнтов (O(N)). Если такая опСрация выполняСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° возрастаСт Π΄ΠΎ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΡ‡Π½ΠΎΠΉ O(N^2), Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ зависанию систСмы ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с дСсятками тысяч записСй. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях цСлСсообразнСС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ БоотвСтствиС (HashMap) ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅.

πŸ“Š Какой инструмСнт Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ для Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ хранСния Π΄Π°Π½Π½Ρ‹Ρ…?
Массив
Π’Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
Бписок Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
ВрСмСнная Ρ‚Π°Π±Π»ΠΈΡ†Π°

Для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большими массивами рСкомСндуСтся ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹:

  • πŸš€ ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ частого пСрСсоздания Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Π±ΡƒΡ„Π΅Ρ€Π½ΠΎΠΉ памяти ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ элСмСнтов.
  • πŸ”„ ИспользованиС Ρ†ΠΈΠΊΠ»Π° По Π˜Π½Π΄Π΅ΠΊΡΡƒ вмСсто Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ, Ссли Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° трСбуСтся модификация элСмСнтов массива, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ созданиС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².
  • πŸ’Ύ БвоСврСмСнная очистка ссылок Π½Π° массивы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹, для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ сборщика мусора ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

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

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

НСсмотря Π½Π° простоту синтаксиса, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ошибки ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивами Π² 1Π‘. Одна ΠΈΠ· самых распространСнных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ β€” ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° обращСния ΠΊ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ индСксу, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкС выполнСния "ИндСкс находится Π²Π½Π΅ Π³Ρ€Π°Π½ΠΈΡ† массива". Π­Ρ‚ΠΎ часто случаСтся ΠΏΡ€ΠΈ цикличСском ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π΅, ΠΊΠΎΠ³Π΄Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Ρ†ΠΈΠΊΠ»Π° Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π΅Π²Π΅Ρ€Π½ΠΎ, особСнно ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ элСмСнтов ΠΈΠ· массива Π² процСссС ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° частая ошибка связана с ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ ссылочной ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹ массивов. ΠŸΡ€ΠΈ присваивании ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ массива Π΄Ρ€ΡƒΠ³ΠΎΠΉ (Массив2 = Массив1) копируСтся Π½Π΅ содСрТимоС, Π° ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. ИзмСнСниС элСмСнтов Π² Массив2 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ измСнСнию Π΄Π°Π½Π½Ρ‹Ρ… Π² Массив1. Для создания нСзависимой ΠΊΠΎΠΏΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Массив.Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ() ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ массив с пСрСносом Π΄Π°Π½Π½Ρ‹Ρ….

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

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

πŸ’‘

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ массива ΠΏΠΎ ссылкС β€” частая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° логичСских ошибок. ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ(), Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° нСзависимая копия Π΄Π°Π½Π½Ρ‹Ρ… для Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… манипуляций.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ сцСнарии использования Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ…

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

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

Π’Ρ‚ΠΎΡ€ΠΎΠΉ сцСнарий β€” Ρ€Π°Π±ΠΎΡ‚Π° с внСшними API. ΠŸΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚ Π²Π΅Π±-сСрвиса Π΄Π°Π½Π½Ρ‹Π΅ часто приходят Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈ дСсСриализации Π² 1Π‘ часто прСдставляСтся Π² Π²ΠΈΠ΄Π΅ массивов структур ΠΈΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… массивов. Π£ΠΌΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎ Π½Π°Π²ΠΈΠ³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Ρ‚Π°ΠΊΠΈΠΌ структурам, ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ поля ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ 1Π‘ являСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ Π½Π°Π²Ρ‹ΠΊΠΎΠΌ соврСмСнного Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

Π’Ρ€Π΅Ρ‚ΠΈΠΉ сцСнарий β€” Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ сортировки ΠΈ поиска. Π₯отя Π² 1Π‘ Π΅ΡΡ‚ΡŒ встроСнныС срСдства сортировки Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΈΠ½ΠΎΠ³Π΄Π° трСбуСтся Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ спСцифичСский Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сортировки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сортировка слияниСм ΠΈΠ»ΠΈ быстрая сортировка) для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ спСцифичСской бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ. РСализация Ρ‚Π°ΠΊΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π±Π΅Π· использования массивов ΠΊΠ°ΠΊ основной Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ структуры Π΄Π°Π½Π½Ρ‹Ρ….

МоТно Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива послС Π΅Π³ΠΎ создания?

Π”Π°, массив Π² 1Π‘ являСтся динамичСской структурой. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ элСмСнты ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ() ΠΈΠ»ΠΈ Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ(), увСличивая Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ элСмСнты, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ Π΅Π³ΠΎ. ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΈ создании лишь Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π½ΠΎ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Массивом ΠΈ БпискомЗначСний?

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

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ массив ΠΎΡ‚ всСх элСмСнтов?

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

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π»ΠΈ массивы ассоциативныС ΠΊΠ»ΡŽΡ‡ΠΈ?

НСт, стандартный массив Π² 1Π‘ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡ΠΈΡΠ»ΠΎΠ²ΡƒΡŽ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ, начиная с нуля. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ассоциативными массивами (ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° БоотвСтствиС (Map), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ строки ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² качСствС ΠΊΠ»ΡŽΡ‡Π΅ΠΉ.

Каков ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива Π² 1Π‘?

ВСорСтичСского ТСсткого ограничСния Π½Π° количСство элСмСнтов Π½Π΅Ρ‚, ΠΎΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ доступной ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ процСсса ΠΈ адрСсным пространством (32 ΠΈΠ»ΠΈ 64 Π±ΠΈΡ‚Π°). Однако Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ€Π°Π±ΠΎΡ‚Π° с массивами, содСрТащими ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ элСмСнтов, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ остороТности ΠΈΠ·-Π·Π° риска пСрСполнСния памяти ΠΈ сниТСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.