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