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

ПониманиС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ этих Ρ‚ΠΈΠΏΠΎΠ² позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. Если Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ слоТныС ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ нюансов Ρ€Π°Π±ΠΎΡ‚Ρ‹ с коллСкциями ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ваша конфигурация Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ростС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся, Π² ΠΊΠ°ΠΊΠΈΡ… сцСнариях умСстно ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· структур.

АрхитСктурныС различия ΠΈ типизация Π΄Π°Π½Π½Ρ‹Ρ…

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

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ИспользованиС Π½Π΅ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Массивов Π² Ρ†ΠΈΠΊΠ»Π°Ρ… с большим количСством ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСпрСдсказуСмым ошибкам привСдСния Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слоТно ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ.

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

πŸ“Š ΠšΠ°ΠΊΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
Массив
БписокЗначСний
БоотвСтствиС
Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Вопрос ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ являСтся критичСским ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ добавлСния ΠΈ чтСния элСмСнтов Π² МассивС Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ максимально быстро, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ°Ρ структура Π΄Π°Π½Π½Ρ‹Ρ… с прямым доступом ΠΏΠΎ индСксу. Однако, Ссли Π²Π°ΠΌ трСбуСтся поиск элСмСнта ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ (Π° Π½Π΅ ΠΏΠΎ индСксу), Массив ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π΅Ρ‚ спСциализированным коллСкциям.

БписокЗначСний ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ встроСнными ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, особСнно ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΈΠ»ΠΈ сортировкС. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ internally ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ эффСктивныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ списками, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ.

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

πŸ’‘

Для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ поиска ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ всСгда ΠΎΡ‚Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ БпискуЗначСний ΠΈΠ»ΠΈ Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΡŽ, Π° Π½Π΅ Ρ€ΡƒΡ‡Π½ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Ρƒ Массива.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими объСмами Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ†ΠΈΠΊΠ»Π°Ρ… Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходах. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнта Π² Массив происходит ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ, Π½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ€Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ процСсс ΠΈΠ·-Π·Π° постоянных ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Ρ‚ΠΈΠΏΠΎΠ² 1Π‘.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности

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

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

  • πŸ” ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ позволяСт ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎlocate Π½ΡƒΠΆΠ½Ρ‹ΠΉ элСмСнт Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° всСго списка.
  • πŸ”„ ΠœΠ΅Ρ‚ΠΎΠ΄ Π‘Π΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для БпискаЗначСний ΠΈ позволяСт цикличСски ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ элСмСнты.
  • πŸ›‘οΈ Бвойство Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ отсутствиС Π΄ΡƒΠ±Π»Π΅ΠΉ, Ρ‡Ρ‚ΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ для справочников.

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

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ свойство"Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ" Ρƒ БпискаЗначСний ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ списков ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ дублирования Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π°Ρ….

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

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ использования Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ…

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

Однако, ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ списки Π²Ρ‹Π±ΠΎΡ€Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ…, ΠΈΠ»ΠΈ ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… для Π‘ΠšΠ” (БистСмы Компоновки Π”Π°Π½Π½Ρ‹Ρ…), Π±Π΅Π· БпискаЗначСний Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ. Π­Ρ‚ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ элСмСнтами Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ².

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΠ½Ρ‹Π΅ элСмСнты Ρ„ΠΎΡ€ΠΌΡ‹"ПолС со списком" автоматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ Массив Π² БписокЗначСний, Ρ‡Ρ‚ΠΎ создаСт лишниС Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈΡ… сразу ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ.

Π’ Π·Π°Π΄Π°Ρ‡Π°Ρ… ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π΅ JSON ΠΈΠ»ΠΈ XML, ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‡Π°Ρ‰Π΅ ΠΈΠ·-Π·Π° возмоТности Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ структуры ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ слоТности. Π—Π΄Π΅ΡΡŒ строгая типизация БпискаЗначСний ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ, Ссли структура входящих Π΄Π°Π½Π½Ρ‹Ρ… динамичСски мСняСтся.

Нюанс Ρ€Π°Π±ΠΎΡ‚Ρ‹ с JSON Π² 1Π‘

ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ JSON-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² 1Π‘ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ массивы всСгда приходят ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ Массив, Π΄Π°ΠΆΠ΅ Ссли содСрТат ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² БписокЗначСний Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΡ€ΠΈ нСобходимости строгой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° характСристик

Для наглядности свСдСм основныС различия Π² Π΅Π΄ΠΈΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ быстро ΡΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Π₯арактСристика Массив БписокЗначСний
Випизация ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Π°Ρ (любой Ρ‚ΠΈΠΏ) Бтрогая (ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠΎΠ²)
Поиск ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Волько ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ ΠΈΠ»ΠΈ внСшняя функция ВстроСнный ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ
Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ элСмСнтов НС контролируСтся НастраиваСмоС свойство
Π Π°Π±ΠΎΡ‚Π° с ΠΎΡ‚Π±ΠΎΡ€ΠΎΠΌ ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ
ИспользованиС Π² Π‘ΠšΠ” ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ Полная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, БписокЗначСний Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для бизнСс-Π·Π°Π΄Π°Ρ‡, Π³Π΄Π΅ Π²Π°ΠΆΠ½Π° Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…. Массив ΠΆΠ΅ остаСтся ΠΊΠΎΡ€ΠΎΠ»Π΅ΠΌ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с динамичСскими структурами.

ΠŸΡ€ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° со старых вСрсий ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (7.7) Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΏΠΎ ΠΈΠ½Π΅Ρ€Ρ†ΠΈΠΈ. Однако соврСмСнныС стандарты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ 1Π‘ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ wherever possible для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ надСТности ΠΊΠΎΠ΄Π°.

β˜‘οΈ ΠšΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ Π²Ρ‹Π±ΠΎΡ€Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

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

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ памяти ΠΈ сСриализация

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

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

ΠŸΡ€ΠΈ сСриализации Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сохранСнии Π² Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Ρ‡Π΅Ρ€Π΅Π· HTTP-сСрвис) Ρ‚ΠΈΠΏ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Π² JSON ΠΊΠ°ΠΊ стандартныС arrays, Ρ‡Ρ‚ΠΎ понятно Π»ΡŽΠ±Ρ‹ΠΌ внСшним систСмам. БпискиЗначСний ΠΏΡ€ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ прСдставлСния структуры.

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

ΠžΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π·Π½Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ β€” опСрация дорогая. ΠœΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρƒ БпискаЗначСний создаСт Π³Π»ΡƒΠ±ΠΎΠΊΡƒΡŽ копию с сохранСниСм всСх настроСк, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ для Массива это простоС ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ссылок Π½Π° элСмСнты (Ссли элСмСнты сами Π½Π΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ явно).

πŸ’‘

Π“Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ БпискаЗначСний Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ.

Как быстро ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Массив Π² БписокЗначСний?

Для ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ конструктор БпискаЗначСний, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Ρ‚ΡƒΠ΄Π° Массив, ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°: НовыйБписок = Новый БписокЗначСний; НовыйБписок.Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ(Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ²);. Π­Ρ‚ΠΎ Π·Π°ΠΉΠΌΠ΅Ρ‚ миллисСкунды Π΄Π°ΠΆΠ΅ для тысяч элСмСнтов.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Массив ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ запроса?

ΠΠ°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Массив Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ запроса нСльзя. НСобходимо сначала ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π’Π°Π±Π»ΠΈΡ†ΡƒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ БписокЗначСний. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Массив Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ выполнСния запроса.

ВлияСт Π»ΠΈ Π²Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ компиляции модуля?

НСт, Π²Ρ‹Π±ΠΎΡ€ ΠΌΠ΅ΠΆΠ΄Ρƒ Массивом ΠΈ БпискомЗначСний влияСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° врСмя выполнСния (runtime) ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти. Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ компиляции модуля ΠΎΡ‚ этого Π½Π΅ зависит.