Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #7569
| Path | csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.albasani.net!.POSTED!not-for-mail |
|---|---|
| From | Jan Burse <janburse@fastmail.fm> |
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: StringBuilder |
| Date | Mon, 05 Sep 2011 05:27:15 +0200 |
| Organization | albasani.net |
| Lines | 51 |
| Message-ID | <j41fik$3qb$1@news.albasani.net> (permalink) |
| References | <96f358c8-a024-40db-b60b-300186c2f813@o10g2000vby.googlegroups.com> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=ISO-8859-1; format=flowed |
| Content-Transfer-Encoding | 7bit |
| X-Trace | news.albasani.net dBq0oZaNM3MEkMdAtteHjiLq6o2OBemYWdeGz2BVO6DnM3E9cW23WLymSLjiniCPl0db5iXzL3biD26HWkVwIQ== |
| NNTP-Posting-Date | Mon, 5 Sep 2011 03:27:16 +0000 (UTC) |
| Injection-Info | news.albasani.net; logging-data="qpnmB3qi8LZBDeOrDEOEvqcV0blnfF3gdojJPhOGX3i6h3yhq6v/nwftbUTBbhsYD8DE6EGMW7QmAjWGL0TbQQiRM/GavesiO3RP3HKoUHAlxpNGlpWpMzSkcJJix3FP"; mail-complaints-to="abuse@albasani.net" |
| User-Agent | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:6.0.1) Gecko/20110830 Firefox/6.0.1 SeaMonkey/2.3.1 |
| In-Reply-To | <96f358c8-a024-40db-b60b-300186c2f813@o10g2000vby.googlegroups.com> |
| Cancel-Lock | sha1:1uiYzwV0NflSsDvRRfWH1C2YWIE= |
| Xref | x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:7569 |
Show key headers only | View raw
bob schrieb:
> Is there any way to use StringBuilder but with + signs instead of
> append?
The + in Java does already internally use StringBuilder.
There is only an issue when you want to accumulate a string
value. If you then explicitly use StringBuilder you are
faster, because you save the new StringBuilder() and toString().
So this is faster, since it uses 1 new and 1 toString():
StringBuilder buf=new StringBuilder();
for (int i=0; i<100; i++) {
buf.append(i);
buf("*");
buf.append(i);
buf.append("=");
buf.append((i*i));
buf.append("\n");
}
System.out.println(buf.toString());
Whereby this code is slower:
String res="";
for (int i=0; i<100; i++) {
res+=i+"*"+i+"="+(i*i)+"\n";
}
System.out.println(res);
It is translated to the following code by the compiler, and
thus uses 100 new and 100 toString():
String res="";
for (int i=0; i<100; i++) {
StringBuilder _buf=new StringBuilder(res);
_buf.append(i);
_buf("*");
_buf.append(i);
_buf.append("=");
_buf.append((i*i));
_buf.append("\n");
res=_buf.toString();
}
System.out.println(res);
For more information see for example here:
http://caprazzi.net/posts/java-bytecode-string-concatenation-and-stringbuilder/
Best Regards
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar
StringBuilder bob <bob@coolgroups.com> - 2011-09-04 19:45 -0700
Re: StringBuilder Arne Vajhøj <arne@vajhoej.dk> - 2011-09-04 22:53 -0400
Re: StringBuilder Jan Burse <janburse@fastmail.fm> - 2011-09-05 05:27 +0200
Re: StringBuilder Arne Vajhøj <arne@vajhoej.dk> - 2011-09-05 19:34 -0400
Re: StringBuilder Wanja Gayk <brixomatic@yahoo.com> - 2011-09-11 16:35 +0200
Re: StringBuilder Arne Vajhøj <arne@vajhoej.dk> - 2011-09-11 16:48 -0400
Re: StringBuilder Roedy Green <see_website@mindprod.com.invalid> - 2011-09-05 17:01 -0700
Re: StringBuilder Roedy Green <see_website@mindprod.com.invalid> - 2011-09-05 11:08 -0700
Re: StringBuilder Jan Burse <janburse@fastmail.fm> - 2011-09-05 23:54 +0200
Re: StringBuilder Jan Burse <janburse@fastmail.fm> - 2011-09-06 00:06 +0200
Re: StringBuilder Roedy Green <see_website@mindprod.com.invalid> - 2011-09-05 17:03 -0700
Re: StringBuilder Jan Burse <janburse@fastmail.fm> - 2011-09-06 08:53 +0200
csiph-web