HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Генерация строк в циклах - задача, часто возникающая на практике. Типичный пример - метод, помогающий генерировать HTML-списки. Он принимает на вход массив элементов и возвращает HTML-список из них:</p>
1 <p>Генерация строк в циклах - задача, часто возникающая на практике. Типичный пример - метод, помогающий генерировать HTML-списки. Он принимает на вход массив элементов и возвращает HTML-список из них:</p>
2 <p>Как можно решить эту задачу "в лоб":</p>
2 <p>Как можно решить эту задачу "в лоб":</p>
3 <ol><li>Создать переменную result и записать в нее &lt;ul&gt;.</li>
3 <ol><li>Создать переменную result и записать в нее &lt;ul&gt;.</li>
4 <li>Пройтись циклом по элементам коллекции и дописать в результирующую строку очередной элемент &lt;li&gt;.</li>
4 <li>Пройтись циклом по элементам коллекции и дописать в результирующую строку очередной элемент &lt;li&gt;.</li>
5 <li>Добавить в конце &lt;/ul&gt; и вернуть result из функции.</li>
5 <li>Добавить в конце &lt;/ul&gt; и вернуть result из функции.</li>
6 </ol><p>Такой способ вполне рабочий, но для большинства языков программирования максимально неэффективный. Дело в том, что конкатенация порождает новую строчку вместо старой, - и подобная ситуация повторяется на каждой итерации. Причем строка становится все больше и больше. Копирование строк приводит к серьезному расходу памяти и влияет на производительность.</p>
6 </ol><p>Такой способ вполне рабочий, но для большинства языков программирования максимально неэффективный. Дело в том, что конкатенация порождает новую строчку вместо старой, - и подобная ситуация повторяется на каждой итерации. Причем строка становится все больше и больше. Копирование строк приводит к серьезному расходу памяти и влияет на производительность.</p>
7 <p>Правильный способ для динамической сборки строк в Java - использование класса StringBuilder. Он позволяет собирать строку по кусочкам без лишнего копирования. Перепишем наш пример:</p>
7 <p>Правильный способ для динамической сборки строк в Java - использование класса StringBuilder. Он позволяет собирать строку по кусочкам без лишнего копирования. Перепишем наш пример:</p>
8 <p>Размер кода практически не изменился, но способ формирования результата стал другим. Вместо перезаписи строки, создается объект, который "накапливает" внутри себя части новой строки. Затем этот объект превращается в строку с помощью метода toString().</p>
8 <p>Размер кода практически не изменился, но способ формирования результата стал другим. Вместо перезаписи строки, создается объект, который "накапливает" внутри себя части новой строки. Затем этот объект превращается в строку с помощью метода toString().</p>
9 <h2>Рекомендуемые программы</h2>
9 <h2>Рекомендуемые программы</h2>