@@ -0,0 +1,930 @@
+  public class Hash %7B%0A    private static final long%5B%5D byteTable;%0A    private static final long HSTART = 0xBB40E64DA205B064L;%0A    private static final long HMULT = 7664345821815920749L;%0A%0A    static %7B%0A        byteTable = new long%5B256%5D;%0A        long h = 0x544B2FBACAAF1684L;%0A        for (int i = 0; i %3C 256; i++) %7B%0A            for (int j = 0; j %3C 31; j++) %7B%0A                h = (h %3E%3E%3E 7) %5E h;%0A                h = (h %3C%3C 11) %5E h;%0A                h = (h %3E%3E%3E 10) %5E h;%0A            %7D%0A            byteTable%5Bi%5D = h;%0A        %7D%0A    %7D%0A    %0A    public static Long generateLongHash(String item) %7B%0A        long h = HSTART;%0A        final long hmult = HMULT;%0A        final long%5B%5D ht = byteTable;%0A        final int len = item.length();%0A        for (int i = 0; i %3C len; i++) %7B%0A            char ch = item.charAt(i);%0A            h = (h * hmult) %5E ht%5Bch & 0xff%5D;%0A            h = (h * hmult) %5E ht%5B(ch %3E%3E%3E 8) & 0xff%5D;%0A        %7D%0A        return h;%0A    %7D%0A  %7D%0A

Create hash.java