fork download
  1.  
  2. class keyVal
  3. {
  4. Integer key;
  5. Integer val;
  6. keyVal(Integer k,Integer v)
  7. {
  8. key=k;
  9. val=v;
  10. }
  11. }
  12. class hashMap
  13. {
  14.  
  15.  
  16. Integer[] freq,state;
  17. Integer size;
  18. keyVal[] hashTable;
  19. public hashMap(int size)
  20. {
  21. hashTable=new keyVal[size];
  22. freq=new Integer[size];
  23. state=new Integer[size];
  24. this.size=size;
  25. for (int i = 0; i < size; i++) {
  26. state[i] = 0;
  27. freq[i] = 0;
  28. }
  29. }
  30. private Integer hash(Integer k)
  31. {
  32. return k.hashCode()%size;
  33. }
  34. public void insert(Integer k,Integer v)
  35. {
  36. Integer home=hash(k);
  37. Integer i=home;
  38. keyVal nn=new keyVal(k,v);
  39. while(state[i]==1)
  40. {
  41. if(hashTable[i].key.equals(k))
  42. {
  43. hashTable[i].val=v;
  44. freq[i]++;
  45. return;
  46. }
  47. i=(i+1)%size;
  48. if(i==home){
  49. return;
  50. }
  51. }
  52. hashTable[i]=nn;
  53. state[i]=1;
  54. freq[i]=1;
  55. }
  56. public Boolean delete(Integer k)
  57. {
  58. Integer home=hash(k);
  59. Integer i=home;
  60. while(state[i]!=0 && !hashTable[i].key.equals(k))
  61. {
  62. i=(i+1)%size;
  63. if(i==home)
  64. {
  65. return false;
  66. }
  67. }
  68. if(state[i]==1 && hashTable[i]!=null && hashTable[i].key.equals(k))
  69. {
  70. freq[i]--;
  71. if(freq[i]==0)
  72. {
  73. state[i]=-1;
  74. hashTable[i]=null;
  75. }
  76. return true;
  77. }
  78. return false;
  79. }
  80. public Integer search(Integer k)
  81. {
  82. int home=hash(k);
  83. int i=home;
  84. while(state[i]!=0)
  85. {
  86. if(hashTable[i]!=null && hashTable[i].key.equals(k))
  87. {
  88. return hashTable[i].val;
  89. }
  90. i=(i+1)%size;
  91. if(i==home)
  92. {
  93. return null;
  94. }
  95. }
  96. return null;
  97. }
  98. public void printHashMap()
  99. {
  100. for(int i=0;i<size;i++)
  101. {
  102. if(state[i]==1)
  103. {
  104. System.out.println(hashTable[i].key+" : "+hashTable[i].val);
  105. }
  106. }
  107. }
  108.  
  109. }
  110. public class Main
  111. {
  112. public static void main(String args[])
  113. {
  114. hashMap hm=new hashMap(10);
  115. hm.insert(25,1);
  116. hm.insert(36,2);
  117. hm.insert(46,3);
  118. hm.insert(48,4);
  119. hm.insert(49,5);
  120. hm.insert(59,6);
  121. hm.insert(35,7);
  122. hm.delete(46);
  123. hm.insert(56,8);
  124. hm.printHashMap();
  125. }
  126. }
  127. /*
  128. 59 : 6
  129. 35 : 7
  130. 25 : 1
  131. 36 : 2
  132. 56 : 8
  133. 48 : 4
  134. 49 : 5
  135. */
Success #stdin #stdout 0.17s 55684KB
stdin
Standard input is empty
stdout
59 : 6
35 : 7
25 : 1
36 : 2
56 : 8
48 : 4
49 : 5