Guest User

Untitled

a guest
Oct 21st, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. import java.util.ArrayList;
  2.  
  3. public class PearsonHash implements HashFunction<String> {
  4. private Character[] charArray1 = new Character[256];
  5. private Character[] charArray2 = new Character[256];
  6.  
  7. public PearsonHash() {
  8. charArray1 = createTable();
  9. charArray2 = createTable();
  10. }
  11.  
  12. private Character[] createTable() {
  13. ArrayList<Character> myArrayList = new ArrayList<Character>(256);
  14. for (int i = 0; i < 256; i++) {
  15. char charact = (char) i;
  16. myArrayList.add(charact);
  17. }
  18. java.util.Collections.shuffle(myArrayList);
  19. Character[] characterArray = new Character[256];
  20. myArrayList.toArray(characterArray);
  21. return characterArray;
  22. }
  23.  
  24. @Override
  25. public int hash(String key) {
  26. int len = key.length();
  27. int hash1 = len;
  28. int hash2 = len;
  29.  
  30. for (int i = 0; i < len; i++) {
  31. char curChar = ((String) key).charAt(i);
  32. int index1 = hash1 ^ curChar;
  33. hash1 = charArray1[index1];
  34. int index2 = hash2 ^ curChar;
  35. hash2 = charArray2[index2];
  36. }
  37.  
  38. return ((hash1 << 16) | (hash2 << 8) | hash1);
  39. }
  40.  
  41. }
Add Comment
Please, Sign In to add comment