Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.65 KB | None | 0 0
  1. package dsa.impl;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Iterator;
  5. import java.util.LinkedList;
  6. import java.util.List;
  7.  
  8. import dsa.core.*;
  9. import dsa.impl.BasicHashMap.Data;
  10.  
  11. public class BasicHashMap implements Map<Integer, String>
  12. {
  13.     int size;
  14.     int array_size;
  15.     int k = 0;
  16.     int h = hashFunction(k);
  17.     List<Data>[] array;
  18.    
  19.     public Integer hashFunction(Integer k)
  20.     {
  21.         k = k%size;
  22.         return k;
  23.     }
  24.    
  25.     public class Data implements Entry<Integer, String>
  26.     {
  27.  
  28.         int key;
  29.         String value;
  30.        
  31.         public Data(Integer k, String v)
  32.         {
  33.             key=k;
  34.             value=v;
  35.         }
  36.  
  37.         public Integer key()
  38.         {
  39.             return key;
  40.         }
  41.  
  42.         @Override
  43.         public String value()
  44.         {
  45.             return value;
  46.         }
  47.     }
  48.        
  49.     public int size()
  50.     {
  51.         return size;
  52.     }
  53.  
  54.     public boolean isEmpty()
  55.     {
  56.         return size == 0;
  57.     }
  58.  
  59.     public Data find(List<Data> list, Integer key)
  60.     {
  61.         int p = 0;
  62.         int s = list.size();
  63.        
  64.         while(p<s)
  65.         {
  66.             if(list.get(p).key()==key)
  67.             {
  68.                 return list.get(p);
  69.             }
  70.         p++;
  71.         }
  72.         return null;
  73.     }
  74.  
  75.     public String get(Integer k)
  76.     {
  77.         h = hashFunction(k);
  78.         return Integer.toString(h);
  79.     }
  80.    
  81.     @SuppressWarnings("unchecked")
  82.     public String put(Integer k, String v)
  83.     {
  84.         h = hashFunction(k);
  85.         String temp = null;
  86.         if (array[h] == null)
  87.         {
  88.             array[h] = (List<Data>) new Object();
  89.             array[h].add(new Data(k,v));
  90.         }else{
  91.             Data data = find(array[h], k);
  92.             if (data == null)
  93.             {
  94.                 array[h].add(new Data(k,v));
  95.             }else{
  96.                 temp = data.value;
  97.                 data.value = v;
  98.         }
  99.         size = size + 1;
  100.         }
  101.     return temp;
  102.     }
  103.  
  104.     public String remove(Integer k) {
  105.         h = hashFunction(k);
  106.         if (array[h] == null)
  107.         {
  108.             return null;
  109.         }
  110.         Data data = find(array[h], k);
  111.         if (data == null)
  112.         {  
  113.             return null;
  114.         }
  115.         array[h].remove(data);
  116.         size = size - 1;
  117.         return data.value();
  118.     }
  119.  
  120.     public Iterator<Integer> keys() {
  121.         // TODO Auto-generated method stub
  122.         return null;
  123.     }
  124.  
  125.     public Iterator<String> values() {
  126.         // TODO Auto-generated method stub
  127.         return null;
  128.     }
  129.  
  130.     public Iterator<Entry<Integer, String>> entries() {
  131.         // TODO Auto-generated method stub
  132.         return null;
  133.     }
  134.    
  135.     public String toString()
  136.     {
  137.         String text = "";
  138.         for (int i=0; i<array.length; i++)
  139.         {
  140.             text += i + ": ";
  141.             if (array[i]==null)
  142.             {
  143.                 text += "empty";
  144.             }else{
  145.                 if (array[i].isEmpty())
  146.                 {
  147.                     text += "empty";
  148.                 } else {
  149.                     for (Data data:(List<Data>) array[i])
  150.                     {
  151.                     text += "{" + data.key() + "," + data.value() + "} ";
  152.                     }
  153.                 }
  154.             }
  155.             text += "\n";
  156.         }
  157.         return text;
  158.     }
  159. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement