Advertisement
SKYIINET

MapHash

Oct 31st, 2014
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.55 KB | None | 0 0
  1. package Base;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.HashSet;
  6.  
  7. public class MapHash<K,setV> {
  8.  
  9.     HashMap<K,HashSet<setV>> HashMapSet = new HashMap<K,HashSet<setV>>();
  10.    
  11.     ArrayList<K> keys = new ArrayList<K>();
  12.    
  13.     HashMap<setV, HashSet<K>> values = new HashMap<setV, HashSet<K>>();
  14.    
  15.     public HashSet<setV> getSet(K k){
  16.         return HashMapSet.get(k);
  17.     }  
  18.    
  19.     public void add(K k, setV v){
  20.         createSet(k);      
  21.         HashMapSet.get(k).add(v);
  22.         addValue(v,k);
  23.        
  24.     }
  25.    
  26.     public void remove(K k, setV v){
  27.         if(HashMapSet.containsKey(k)){
  28.             HashMapSet.get(k).remove(v);
  29.             removeValue(v,k);
  30.         }      
  31.     }
  32.    
  33.     private void addValue(setV v, K k){
  34.         if(!values.containsKey(v)){
  35.             values.put(v, new HashSet<K>());
  36.         }
  37.             values.get(v).add(k);
  38.     }
  39.    
  40.     private void removeValue(setV v, K k){     
  41.         if(values.containsKey(v)){
  42.             values.get(v).remove(k);
  43.         }      
  44.     }
  45.    
  46.    
  47.    
  48.     @Override
  49.     public String toString(){      
  50.         return this.HashMapSet.toString();     
  51.     }
  52.  
  53.     @SuppressWarnings("unchecked")
  54.     public void removeTotalSetValues(setV v) {
  55.        
  56.         Object[] keyArr = values.get(v).toArray();
  57.         for(int i = 0; i < keyArr.length; i++){
  58.             remove((K)keyArr[i],v);
  59.         }
  60.        
  61.     }
  62.  
  63.     public void createSet(K k) {
  64.         if(!HashMapSet.containsKey(k)){
  65.             HashMapSet.put(k, new HashSet<setV>());
  66.             keys.add(k);
  67.         }
  68.     }
  69.    
  70.     public boolean valuesContain(setV v){
  71.         return values.containsKey(v);
  72.     }
  73.  
  74.     public boolean setContains(K k, setV v) {
  75.             return getSet(k).contains(v);
  76.     }
  77.  
  78.     public String valueInfo(){
  79.         return values.toString();
  80.     }
  81.    
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement