Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Base;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.HashSet;
- public class MapHash<K,setV> {
- HashMap<K,HashSet<setV>> HashMapSet = new HashMap<K,HashSet<setV>>();
- ArrayList<K> keys = new ArrayList<K>();
- HashMap<setV, HashSet<K>> values = new HashMap<setV, HashSet<K>>();
- public HashSet<setV> getSet(K k){
- return HashMapSet.get(k);
- }
- public void add(K k, setV v){
- createSet(k);
- HashMapSet.get(k).add(v);
- addValue(v,k);
- }
- public void remove(K k, setV v){
- if(HashMapSet.containsKey(k)){
- HashMapSet.get(k).remove(v);
- removeValue(v,k);
- }
- }
- private void addValue(setV v, K k){
- if(!values.containsKey(v)){
- values.put(v, new HashSet<K>());
- }
- values.get(v).add(k);
- }
- private void removeValue(setV v, K k){
- if(values.containsKey(v)){
- values.get(v).remove(k);
- }
- }
- @Override
- public String toString(){
- return this.HashMapSet.toString();
- }
- @SuppressWarnings("unchecked")
- public void removeTotalSetValues(setV v) {
- Object[] keyArr = values.get(v).toArray();
- for(int i = 0; i < keyArr.length; i++){
- remove((K)keyArr[i],v);
- }
- }
- public void createSet(K k) {
- if(!HashMapSet.containsKey(k)){
- HashMapSet.put(k, new HashSet<setV>());
- keys.add(k);
- }
- }
- public boolean valuesContain(setV v){
- return values.containsKey(v);
- }
- public boolean setContains(K k, setV v) {
- return getSet(k).contains(v);
- }
- public String valueInfo(){
- return values.toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement