Lumilikha ang klase
Isaalang-alang ang code sa ibaba:
String
ng mga hindi nababagong string. Nangangahulugan ito na kung maglalapat ka ng anumang operasyon sa isang string o operasyon sa isang string, ang resulta ay isang bagong string. Kung hindi itinalaga ang bagong string na ito sa anumang variable, mawawala ang resulta ng operasyon. Alinsunod dito, ang mga operasyon sa naturang mga string ay kinakailangang humantong sa paglikha ng isang bagong string. At nangangahulugan ito ng karagdagang memorya at mga gastos sa oras ng processor. Kung maraming operasyon sa isang string, kadalasan ay mas mahusay na gumamit ng mga dynamic na string, na ipinapatupad ng class StringBuilder
.
String s = "Some text";
int count = 100;
for(int i = 0; i<100;i++){
s+=i;
}
**********************
StringBuilder s = new StringBuilder(110);
int count = 100;
s.append("Some text");
for(int i = 0;i<count;i++){
s.append(i);
}
Tinutugunan ng code sa itaas ang parehong problema. Kapag nagdagdag kami ng 100 bagong substring sa isang ibinigay na string. Ang unang halimbawa ay gumagamit ng klase para sa layuning ito String
, na hindi masyadong mahusay dahil ang bawat pagdaragdag ng isang substring ay humahantong sa pagbuo ng isang bagong bagay String
. At ito ay isang karagdagang pag-aaksaya ng memorya at oras. Sa pangalawang halimbawa, ang problemang ito ay nalutas gamit ang class StringBuilder
. Lumilikha kami ng isang bagay ng klase nang maaga StringBuilder
, at pagkatapos ay ginagamit ang paraan append
na binubuo namin ang string na kailangan namin sa pamamagitan ng pagbabago ng mga nilalaman ng nilikha na bagay StringBuilder
, ngunit nang hindi muling nililikha ang mismong bagay.
GO TO FULL VERSION