Sobes.tech
Junior — Middle

Цикл ичинде саптардын үзгүлтүксүз бириктирилиши учурунда эс тутумдун ашыкча колдонулушун алдын алуу үчүн кайсы ыкмалар жана ыкмалар колдонулушу мүмкүн?

sobes.tech AI

AIден жооп

Javaда цикл ичинде жолдорду бириктирүүдө, Javaда жолдор өзгөрүлбөс (immutable) болгондуктан, аралык объекттердин көптөгөн түзүлүшүнөн качуу маанилүү. Циклдеги + оператору ар бир жолу жаңы объект түзөт, бул эс тутумдун ашыкча колдонулушуна жана иштөө ылдамдыгынын төмөндөшүнө алып келет.

Бул көйгөйдү алдын алуу үчүн төмөнкү ыкмалар колдонулат:

  • StringBuilder — бул класс, ал натыйжалуу жолдорду топтоо мүмкүнчүлүгүн берет, ар бир кошууда жаңы объект түзбөй. Анын append() методу цикл ичинде колдонулуп, аяктагандан кийин toString() чакырылат, жыйынтыктагы жол алына турган.

  • StringBuffer — StringBuilderге окшош, бирок көптөгөн жиптер менен иштөө үчүн коопсуз (синхрондоштурулган). Эгер көптөгөн жиптерден кирүү керек болсо, колдонулат.

Мисал менен StringBuilder:

StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1000; i++) {
    sb.append("жол ").append(i).append("\n");
}
String натыйжа = sb.toString();

Бул ыкма эс тутумдун жүктөмүн кыйла азайтат жана иштөө ылдамдыгын жакшыртат, цикл ичинде + аркылуу жолдорду бириктирүүгө салыштырмалуу.