String interning (WAS: SAX2/Java: Towards a final form)
Miles Sabin
msabin at cromwellmedia.co.uk
Thu Jan 13 11:03:14 GMT 2000
Tyler Baker wrote,
> For most documents, making a call to String.intern()
> 50-100 times in a 100KB document is a lot less expensive than
> doing:
>
> if (x.equals("foo") {
>
> }
> else if (x.equals("bar") {
>
> }
> etc...
>
> As opposed to:
>
> if (x == "foo") {
>
> }
> else if (x == "bar) {
>
>}
> etc.
>
> Calling the equals method can get expensive for large case > > statements.
Sure ... so Don't Do That (tm) ...
If you've got what's effectively a huge case statement then
use a lookup table ... a HashMap or a trie of some sort or
another. Either of those will outperform a large number of
chained String.equals() calls or == tests.
Cheers,
Miles
--
Miles Sabin Cromwell Media
Internet Systems Architect 5/6 Glenthorne Mews
+44 (0)20 8817 4030 London, W6 0LJ, England
msabin at cromwellmedia.com http://www.cromwellmedia.com/
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ or CD-ROM/ISBN 981-02-3594-1
Please note: New list subscriptions now closed in preparation for transfer to OASIS.
More information about the Xml-dev
mailing list