ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ β€” это Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ структура, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ с большими объСмами ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, упрощая ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Но Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ массив Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅? Как ΠΎΠ½ устроСн Π² 1Π‘, ΠΈ Ρ‡Π΅ΠΌ отличаСтся ΠΎΡ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ?

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

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ массивами ΠΈ динамичСскими списками β€” этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ часто становится источником ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹. Π’Π°ΠΊΠΆΠ΅ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ практичСскиС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° с коммСнтариями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ сразу ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своих конфигурациях.

πŸ“Š Как часто Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ массивы Π² 1Π‘?
ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎ, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ скриптС
Иногда, для спСцифичСских Π·Π°Π΄Π°Ρ‡
Рядом, Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
Никогда Π½Π΅ использовал, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠ»Ρ‹ΡˆΠ°Π»

1. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ массив Π΄Π°Π½Π½Ρ‹Ρ… Π² 1Π‘: ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΡƒΡ‚ΡŒ

Массив Π² 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8 β€” это упорядочСнная коллСкция элСмСнтов ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, доступ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ осущСствляСтся ΠΏΠΎ индСксу. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ списков, массивы:

  • πŸ”Ή Π˜ΠΌΠ΅ΡŽΡ‚ фиксированный Ρ€Π°Π·ΠΌΠ΅Ρ€ (Ссли Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ динамичСскиС массивы)
  • πŸ”Ή Π₯ранят элСмСнты Π² памяти, Π° Π½Π΅ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…
  • πŸ”Ή ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ быстрый доступ ΠΏΠΎ индСксу (O(1) для чтСния/записи)
  • πŸ”Ή ΠœΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ (Π΄ΠΎ 60 ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Π² 1Π‘)

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: массив чисСл ΠΎΡ‚ 1 Π΄ΠΎ 5. Π’ ΠΊΠΎΠ΄Π΅ ΠΎΠ½ создаСтся Ρ‚Π°ΠΊ:

МассивЧисСл = Новый Массив(5);

МассивЧисСл[0] = 1;

МассивЧисСл[1] = 2;

// ... ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅ Π΄ΠΎ 5-Π³ΠΎ элСмСнта

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ индСксация Π² 1Π‘ начинаСтся с 0, Π° Π½Π΅ с 1 β€” это классичСскоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° языков программирования. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ массивы, созданныС Ρ‡Π΅Ρ€Π΅Π· конструктор Новый Массив() с явным ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ размСрности.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ индСксу (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Массив[10] Π² массивС ΠΈΠ· 5 элСмСнтов) 1Π‘ выбросит ΠΎΡˆΠΈΠ±ΠΊΡƒ "ИндСкс находится Π²Π½Π΅ Π³Ρ€Π°Π½ΠΈΡ† массива". Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· самых частых ошибок Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ².

2. Π’ΠΈΠΏΡ‹ массивов Π² 1Π‘: ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ vs ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅

Π’ 1Π‘ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄Π²Π° основных Ρ‚ΠΈΠΏΠ° массивов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ структурой хранСния Π΄Π°Π½Π½Ρ‹Ρ…:

Π’ΠΈΠΏ массива ОписаниС ΠŸΡ€ΠΈΠΌΠ΅Ρ€ объявлСния Π’ΠΈΠΏΠΈΡ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅
ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ ЛинСйная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ элСмСнтов с ΠΎΠ΄Π½ΠΈΠΌ индСксом Новый Массив(10) Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ списка Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ Π΄Π½Π΅ΠΉ Π½Π΅Π΄Π΅Π»ΠΈ, Π½Π°Π±ΠΎΡ€ коэффициСнтов
ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ Массив массивов (Π΄ΠΎ 60 ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ). ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт сам являСтся массивом Новый Массив(3, 5) (ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° 3Γ—5) Π’Π°Π±Π»ΠΈΡ†Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ расчСтов, ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹
ДинамичСский Массив с автоматичСски измСняСмым Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ (рСализуСтся Ρ‡Π΅Ρ€Π΅Π· Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ()) Массив = Новый Массив;
Массив.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(10);
Когда Π·Π°Ρ€Π°Π½Π΅Π΅ нСизвСстно количСство элСмСнтов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ поиска)

ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для прСдставлСния Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° 3Γ—4 ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ°Ρ… ΠΏΠΎ ΠΊΠ²Π°Ρ€Ρ‚Π°Π»Π°ΠΌ (строки) ΠΈ Ρ€Π΅Π³ΠΈΠΎΠ½Π°ΠΌ (столбцы):

ΠŸΡ€ΠΎΠ΄Π°ΠΆΠΈ = Новый Массив(3, 4);

// Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки (1-ΠΉ ΠΊΠ²Π°Ρ€Ρ‚Π°Π»)

ΠŸΡ€ΠΎΠ΄Π°ΠΆΠΈ[0][0] = 1000; // Π Π΅Π³ΠΈΠΎΠ½ 1

ΠŸΡ€ΠΎΠ΄Π°ΠΆΠΈ[0][1] = 1500; // Π Π΅Π³ΠΈΠΎΠ½ 2

// ... ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅

Однако для слоТных Ρ‚Π°Π±Π»ΠΈΡ† Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ β€” ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ большС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (сортировка, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ, поиск). ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΆΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ для вычислСний ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ хранСния.

πŸ’‘

Для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°(Массив)) β€” это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ структуру Π΄Π°Π½Π½Ρ‹Ρ….

3. Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² 1Π‘: 5 практичСских способов

Π’ 1Π‘ Π΅ΡΡ‚ΡŒ нСсколько способов ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массивов. Π’Ρ‹Π±ΠΎΡ€ зависит ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ:

  1. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ с фиксированным Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ:
    Массив = Новый Массив(10); // Массив ΠΈΠ· 10 элСмСнтов

    ВсС элСмСнты ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ НСопрСдСлСно.

  2. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ с Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ значСниями:
    Массив = Новый Массив(3, 5, 7); // Массив [3, 5, 7]
  3. ДинамичСскоС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов:
    Массив = Новый Массив;
    

    Массив.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π―Π±Π»ΠΎΠΊΠΎ");

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

  4. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ:
    Бписок = Новый БписокЗначСний;
    

    Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(1);

    Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(2);

    Массив = Бписок.Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΠšΠΎΠ»ΠΎΠ½ΠΊΡƒ("Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅");

  5. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива:
    ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° = Новый Массив(2, 3); // 2 строки, 3 столбца

Для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΏΡ€ΠΈΠ΅ΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ»:

ΠœΠ°ΡΡΠΈΠ²ΠšΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² = Новый Массив;

Для Π‘Ρ‡ = 1 По 10 Π¦ΠΈΠΊΠ»

ΠœΠ°ΡΡΠΈΠ²ΠšΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ².Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π‘Ρ‡ * Π‘Ρ‡);

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ создании массива Ρ‡Π΅Ρ€Π΅Π· Новый Массив(10) всС элСмСнты ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлСно. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π½ΡƒΠ»ΠΈ ΠΈΠ»ΠΈ пустыС строки, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈΡ… явно Π² Ρ†ΠΈΠΊΠ»Π΅.

Π£Π±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ массив ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ (Π½Π΅ Ρ€Π°Π²Π΅Π½ НСопрСдСлСно)

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ индСксов (ΠΎΡ‚ 0 Π΄ΠΎ Π Π°Π·ΠΌΠ΅Ρ€ΠœΠ°ΡΡΠΈΠ²Π°()-1)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ для пустых массивов

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π’Π“Ρ€Π°Π½ΠΈΡ†Π°()/НГраница() для динамичСских массивов-->

4. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами

ПослС создания массива Π²Π°ΠΌ понадобятся ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для манипуляции Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π’ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ…:

  • πŸ”Ή Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) β€” добавляСт элСмСнт Π² ΠΊΠΎΠ½Π΅Ρ† динамичСского массива
  • πŸ”Ή Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ(ИндСкс, Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) β€” вставляСт элСмСнт ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ индСксу
  • πŸ”Ή Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(ИндСкс) β€” удаляСт элСмСнт ΠΏΠΎ индСксу
  • πŸ”Ή ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ() β€” удаляСт всС элСмСнты
  • πŸ”Ή Найти(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния ΠΈΠ»ΠΈ -1
  • πŸ”Ή Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ() β€” сортируСт элСмСнты ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ
  • πŸ”Ή Π’Π“Ρ€Π°Π½ΠΈΡ†Π°()/НГраница() β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ/ниТнюю Π³Ρ€Π°Π½ΠΈΡ†Ρƒ индСксов

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

Π¦Π²Π΅Ρ‚Π° = Новый Массив("ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ", "Π—Π΅Π»Π΅Π½Ρ‹ΠΉ", "Π‘ΠΈΠ½ΠΈΠΉ");

// Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт

Π¦Π²Π΅Ρ‚Π°.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π–Π΅Π»Ρ‚Ρ‹ΠΉ");

// Π£Π΄Π°Π»ΠΈΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт (индСкс 1)

Π¦Π²Π΅Ρ‚Π°.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(1);

// НайдСм индСкс "Биний"

ИндСксБинСго = Π¦Π²Π΅Ρ‚Π°.Найти("Π‘ΠΈΠ½ΠΈΠΉ"); // Π’Π΅Ρ€Π½Π΅Ρ‚ 1 (послС удалСния Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ)

Для сортировки массивов ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ:

Массив.Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ();

Массив = Массив.Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ();

Массив.ΠŸΠΎΠΌΠ΅Π½ΡΡ‚ΡŒΠœΠ΅ΡΡ‚Π°ΠΌΠΈ(0, Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°());

Массив.Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΠŸΠΎΠ£Π±Ρ‹Π²Π°Π½ΠΈΡŽ(); // ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° для Π½ΠΎΠ²Ρ‹Ρ… вСрсий ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹

Как ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ поиск Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивах?

Для массивов Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ >1000 элСмСнтов Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ поиск Ρ‡Π΅Ρ€Π΅Π· Найти() Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях:

1. ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ отсортируйтС массив ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΠ°ΠΉΡ‚ΠΈΠ‘ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠŸΠΎΠΈΡΠΊΠΎΠΌ() (доступно Π² 1Π‘ 8.3.14+)

2. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠΉΡ‚Π΅ массив Π² БоотвСтствиС (Ρ…ΡΡˆ-Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ), Ссли Π½ΡƒΠΆΠ½Ρ‹ частыС обращСния ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ

3. Для тСкстовых Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ БтрНайти() с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ объСдинСниСм Π² строку Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ

5. ΠœΠ°ΡΡΠΈΠ²Ρ‹ vs Π’Π°Π±Π»ΠΈΡ†Ρ‹Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ vs БпискиЗначСний: Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ?

Новички часто ΠΏΡƒΡ‚Π°ΡŽΡ‚ массивы с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ коллСкциями 1Π‘. Π’ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ различия:

ΠšΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ Массив Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ БписокЗначСний
Π’ΠΈΠΏ элСмСнтов ΠžΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Π΅ Π Π°Π·Π½Ρ‹Π΅ (ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹) ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅
ДинамичСскоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Волько Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ/Π£Π΄Π°Π»ΠΈΡ‚ΡŒ) Π”Π°, полная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π”Π°
Поиск/Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ (ΠΌΠ΅Ρ‚ΠΎΠ΄ Найти) ΠŸΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (НайтиБтроки, ΠžΡ‚ΠΎΠ±Ρ€Π°Ρ‚ΡŒ) ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ
ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Максимальная для чтСния/записи ΠΏΠΎ индСксу НиТС ΠΈΠ·-Π·Π° Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов БрСдняя
Π’ΠΈΠΏΠΈΡ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ВычислСния, Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅, ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠžΡ‚Ρ‡Π΅Ρ‚Ρ‹, слоТныС структуры Π΄Π°Π½Π½Ρ‹Ρ… Π’Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ списки, ΠΏΠ΅Ρ€Π΅Ρ‡Π½ΠΈ

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ массивы:

  • πŸ”Ή НуТна максимальная ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ доступа ΠΏΠΎ индСксу
  • πŸ”Ή Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с числовыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹)
  • πŸ”Ή НуТно Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² памяти
  • πŸ”Ή Алгоритмы Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ фиксированного Ρ€Π°Π·ΠΌΠ΅Ρ€Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сортировка)

Когда Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π’Π°Π±Π»ΠΈΡ†ΡƒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

  • πŸ”Ή НуТны ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°
  • πŸ”Ή ВрСбуСтся сортировка/Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ нСскольким критСриям
  • πŸ”Ή Π”Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΈΠ»ΠΈ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ
πŸ’‘

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ для Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Π° Π’Π°Π±Π»ΠΈΡ†Ρ‹Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ β€” для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с бизнСс-Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. НС ΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π±Π΅Π· вСской ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹.

6. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования массивов

Рассмотрим Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ сцСнарии, Π³Π΄Π΅ массивы Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: РасчСт срСднСй Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π·Π° нСдСлю

Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ = Новый Массив(7);

Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹[0] = 22.5; // ПонСдСльник

Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹[1] = 23.1; // Π’Ρ‚ΠΎΡ€Π½ΠΈΠΊ

// ... заполняСм ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π½ΠΈ

Π‘ΡƒΠΌΠΌΠ° = 0;

Для ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π’Π΅ΠΌΠΏ Из Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π¦ΠΈΠΊΠ»

Π‘ΡƒΠΌΠΌΠ° = Π‘ΡƒΠΌΠΌΠ° + Π’Π΅ΠΌΠΏ;

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

БрСдняяВСмпСратура = Π‘ΡƒΠΌΠΌΠ° / Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() + 1;

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: Поиск Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² Π² спискС ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ΠΎΠ²

Π‘ΠΏΠΈΡΠΎΠΊΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ΠΎΠ² = Новый Массив;

// ЗаполняСм массив (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ· Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ)

Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅Π˜ΠΠ = Новый Массив;

Π”ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹ = Новый Массив;

Для ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ Из Π‘ΠΏΠΈΡΠΎΠΊΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ΠΎΠ² Π¦ΠΈΠΊΠ»

Если Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅Π˜ΠΠ.Найти(ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚.ИНН) = -1 Π’ΠΎΠ³Π΄Π°

Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅Π˜ΠΠ.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚.ИНН);

Π˜Π½Π°Ρ‡Π΅

Π”ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚.НаимСнованиС);

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

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3: ВранспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π½Π° 90Β°)

Π˜ΡΡ…ΠΎΠ΄Π½Π°Ρ = Новый Массив(2, 3);

Π˜ΡΡ…ΠΎΠ΄Π½Π°Ρ[0] = Новый Массив(1, 2, 3);

Π˜ΡΡ…ΠΎΠ΄Π½Π°Ρ[1] = Новый Массив(4, 5, 6);

Вранспонированная = Новый Массив(3, 2);

Для Π‘Ρ‚Ρ€ = 0 По Π˜ΡΡ…ΠΎΠ΄Π½Π°Ρ.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() Π¦ΠΈΠΊΠ»

Для Π‘Ρ‚Π»Π± = 0 По Π˜ΡΡ…ΠΎΠ΄Π½Π°Ρ[Π‘Ρ‚Ρ€].Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() Π¦ΠΈΠΊΠ»

Вранспонированная[Π‘Ρ‚Π»Π±][Π‘Ρ‚Ρ€] = Π˜ΡΡ…ΠΎΠ΄Π½Π°Ρ[Π‘Ρ‚Ρ€][Π‘Ρ‚Π»Π±];

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

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

Π­Ρ‚ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚, ΠΊΠ°ΠΊ массивы ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ»ΠΈ матСматичСских ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ.

7. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивами ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ

Π”Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ошибки. Π’ΠΎΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнныС:

  1. Π’Ρ‹Ρ…ΠΎΠ΄ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ массива:

    ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Массив[10] Π² массивС ΠΈΠ· 5 элСмСнтов. ВсСгда провСряйтС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹:

    Если ИндСкс >= 0 И ИндСкс <= Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() Π’ΠΎΠ³Π΄Π°
    

    // БСзопасный доступ

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

  2. ИспользованиС Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… массивов:

    ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ объявлСна ΠΊΠ°ΠΊ Массив, Π½ΠΎ Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° конструктором Новый Массив.

  3. ΠŸΡƒΡ‚Π°Π½ΠΈΡ†Π° с индСксациСй (0 vs 1):

    Π’ 1Π‘ индСксация начинаСтся с 0, Π½ΠΎ Π² бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ 1 (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, нумСрация мСсяцСв). Π―Π²Π½ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚.

  4. Π˜Π·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ массивов:

    ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ Массив2 = Массив1 создаСт ссылку, Π° Π½Π΅ копию. Для Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ копирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:

    Массив2 = Массив1.Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ();
  5. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…:

    Если массив объявлСн ΠΊΠ°ΠΊ Массив Число, ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ строку Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π’ΠΈΠΏΠ—Π½Ρ‡() для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ:

    Если Π’ΠΈΠΏΠ—Π½Ρ‡(НовоСЗначСниС) = Π’ΠΈΠΏ("Число") Π’ΠΎΠ³Π΄Π°
    

    Массив.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(НовоСЗначСниС);

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ вСрсиях 1Π‘ Π½ΠΈΠΆΠ΅ 8.3.10 ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ() отсутствуСт. Для копирования массивов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ» ΠΈΠ»ΠΈ Массив2 = Массив1.Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ(); Массив2 = Массив2.Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ();.

8. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами: совСты для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивами Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ >10,000 элСмСнтов слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½ΡŽΠ°Π½ΡΡ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

  • πŸ”Ή ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти:

    Если Π·Π°Ρ€Π°Π½Π΅Π΅ извСстСн Ρ€Π°Π·ΠΌΠ΅Ρ€ массива, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ сразу с Π½ΡƒΠΆΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ. Π­Ρ‚ΠΎ быстрСС, Ρ‡Π΅ΠΌ динамичСскоС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ().

  • πŸ”Ή ΠœΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² Ρ†ΠΈΠΊΠ»Π΅:

    Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ². НапримСр:

    // ΠŸΠ»ΠΎΡ…ΠΎ (Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΠΈΡ‚ΠΊΠ΅)
    

    Для i = 0 По Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() Π¦ΠΈΠΊΠ»

    // Π₯ΠΎΡ€ΠΎΡˆΠΎ (сохраняСм Π³Ρ€Π°Π½ΠΈΡ†Ρƒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ)

    МаксИндСкс = Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°();

    Для i = 0 По МаксИндСкс Π¦ΠΈΠΊΠ»

  • πŸ”Ή ИспользованиС Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… массивов:

    Если всС элСмСнты ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Число), явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ это ΠΏΡ€ΠΈ создании:

    МассивЧисСл = Новый Массив(100, Π’ΠΈΠΏ("Число"));
  • πŸ”Ή Π—Π°ΠΌΠ΅Π½Π° Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ²:

    Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΠ’ΠœΠ°ΡΡΠΈΠ²() ΠΈ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ˜Π·ΠœΠ°ΡΡΠΈΠ²Π°() вмСсто Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Для.

Для ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π·Π°Π΄Π°Ρ‡ рассмотритС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹:

  • πŸ”Ή Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° β€” Ссли Π½ΡƒΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ элСмСнты
  • πŸ”Ή БоотвСтствиС β€” для быстрого поиска ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ
  • πŸ”Ή Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ массивы β€” для Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ
πŸ’‘

Для массивов Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ >100,000 элСмСнтов рассмотритС Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… вмСсто ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти.

FAQ: ЧастыС вопросы ΠΎ массивах Π² 1Π‘

МоТно Π»ΠΈ Π² 1Π‘ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив с элСмСнтами Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°?

Π”Π°, Π½ΠΎ это Π½Π΅ рСкомСндуСтся. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 1Π‘ позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ массивС значСния Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, числа ΠΈ строки). Однако это услоТняСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ошибкам. Π›ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

  • ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ массивы для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°
  • Π’Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ
  • Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ для слоТных Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ "ΠΏΠ»ΠΎΡ…ΠΎΠ³ΠΎ" массива:

Π‘ΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ² = Новый Массив(10, "ΠŸΡ€ΠΈΠ²Π΅Ρ‚", Π˜ΡΡ‚ΠΈΠ½Π°);
Как ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строку Π² массив символов?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘Ρ‚Ρ€Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ() с пустым Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ:

Π‘Ρ‚Ρ€ΠΎΠΊΠ° = "1Π‘";

МассивБимволов = Π‘Ρ‚Ρ€Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, "");

// Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: ["1", "Π‘"]

Для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ прСобразования:

ВосстановлСннаяБтрока = Π‘Ρ‚Ρ€Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ(МассивБимволов, "");
Π§Π΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ массивы ΠΎΡ‚ динамичСских списков?

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ различия:

Массив ДинамичСский список
Ѐиксированный ΠΈΠ»ΠΈ динамичСский Ρ€Π°Π·ΠΌΠ΅Ρ€ ВсСгда динамичСский
Доступ ΠΏΠΎ индСксу (O(1)) Доступ ΠΏΠΎ индСксу (O(n) Π² Ρ…ΡƒΠ΄ΡˆΠ΅ΠΌ случаС)
ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ Волько ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ
ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹: Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(), Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(), Найти() ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹: Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(), Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ(), Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(), ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ()

ДинамичСскиС списки ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ для частых вставок/ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΉ Π² сСрСдинС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

Как ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ массив Π² 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эти ΠΏΡ€ΠΈΠ΅ΠΌΡ‹:

  1. Π’Ρ‹Π²ΠΎΠ΄ Π² сообщСниС:
    Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°(Массив));
  2. Пошаговая ΠΎΡ‚Π»Π°Π΄ΠΊΠ°:

    УстановитС Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΈ просматривайтС значСния Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ (Π²ΠΊΠ»Π°Π΄ΠΊΠ° "ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅").

  3. Π—Π°ΠΏΠΈΡΡŒ Π² ΠΆΡƒΡ€Π½Π°Π»:
    Для ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из Массив Π¦ΠΈΠΊΠ»
    

    Π—Π°ΠΏΠΈΡΡŒΠ–ΡƒΡ€Π½Π°Π»Π°Π Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ("ΠžΡ‚Π»Π°Π΄ΠΊΠ°", , , , Π­Π»Π΅ΠΌΠ΅Π½Ρ‚);

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

  4. Визуализация ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов:
    ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π’Ρ‹Π²Π΅ΡΡ‚ΠΈΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ(ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°)
    

    Для Π‘Ρ‚Ρ€ = 0 По ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() Π¦ΠΈΠΊΠ»

    Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ(ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°[Π‘Ρ‚Ρ€], ", "));

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

    ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

МоТно Π»ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ массив Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘?

ΠŸΡ€ΡΠΌΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅Ρ‚, Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ:

  1. БСриализация Π² строку:
    Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π”Π°Π½Π½Ρ‹Ρ… = Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅(Массив);
    

    // БохраняСм Π² Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ ΠΈΠ»ΠΈ рСгистр

    ...

    // ВосстановлСниС

    Массив = Π’ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅(Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π”Π°Π½Π½Ρ‹Ρ…);

    ΠœΠΈΠ½ΡƒΡ: Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, слоТно ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ.

  2. Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅:

    Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ рСгистр свСдСний с ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ΠΌ "ИндСкс" ΠΈ рСсурсом "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅".

  3. ИспользованиС JSON (для 1Б 8.3.13+):
    JSON = Новый Π—Π°ΠΏΠΈΡΡŒJSON;
    

    JSON.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ();

    JSON.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ(Массив);

    Π‘Ρ‚Ρ€ΠΎΠΊΠ°JSON = JSON.Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ();

    // ВосстановлСниС

    Π§Ρ‚Π΅Π½ΠΈΠ΅JSON = Новый Π§Ρ‚Π΅Π½ΠΈΠ΅JSON;

    Π§Ρ‚Π΅Π½ΠΈΠ΅JSON.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°JSON);

    Массив = Π§Ρ‚Π΅Π½ΠΈΠ΅JSON.ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ();

Для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов (>1000 элСмСнтов) ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»Π΅Π½ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚.