2010/3/4 Ulf Zibis <ulf.zi...@gmx.de>: >> 5. >> Intern string do not need hash codes co comparing cos they have same >> address, so first loop would return true if they are equal, after this >> we need only to check if they are not equal: >> >>> >>> if (isIntern()&& anotherString.isIntern()) return false; >>> > > You are right, but > if (h1 != 0 && h2 != 0 && h1 != h2) return false; > would perform same (if already computed internal hash would be > back-propagated to the Java object). >
Could you explain what do you mean ? If u search for optimization i suggest (if it's not already partially implemented): add : public static String String.intern(String str, int waste) which would work like String.intern(String str) except that if in intern table there is already 'other' String that: str.startWith(other) && other.length()<str.length()+waste then new intern String would use same char array as other String. If i'm not wrong this should free around 40% memory consumed by Strings also could help a lot String String.intern(String str, String asPartOfString) I prefer this solution because 10Mb of memory may mean more data stored in Memory instead of database which can bring 10000% more benefits than toying with if. -- Pozdrowionka. / Regards. Lasu aka Marek Kozieł http://lasu2string.blogspot.com/