posted 12 years ago
It allows you to specify the multiplication factor.You can start off with a different value from 0 for hash and a different value from 0x1f (31) for multiplier.
That makes a really really big difference, particularly if you know all about has algorithms and can think of a better algorithm . . . and if you believe that, you'll believe anything.
They think there are people who want the option of choosing their own multiplier and starting value. Remember this is a library class. When you design ordinary classes, you want to give them the smallest public interface yo ucan get away with. When you design library classes, you tend to put things in because it is possible somebody would want them. So library classes tend to ahve big public interfaces.