Показать сообщение отдельно
Старый 09.05.2015, 23:00
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 21  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
А у Array есть методы pop, shift etc.
Да, но они тоже изменяют массив. Там за кадром при увеличении длины массива, создается новый массив, длиннее предыдущего раза в полтора, и в него копируются все элементы исходного, а исходный уничтожается. После чего в новом уже есть пустые ячейки, куда и будут "вталкиваться" вот эти новые элементы. Это инфа из книжек, я не сам придумал. Правда читал это по джаве (в курсе OCPJP), но что-то мне подсказывает, что здесь механизм точно такой же. То есть как бы динамические массивы - это все миф, на самом деле все массивы имеют статическую длину, но можно создать иллюзию динамики за счет таких вот махинаций.
Вывод, в данном случае будет быстрее и проще сначала обработать строку регуляркой, а уже потом собрать из нее правильный массив. Хотя по поводу скорости регулярных выражений тоже утверждать не могу. Так же инфа из книжек (конкретно из Дж. Фриддла - Регулярные выражения). Но если кому интересно, можете провести тест скорости