Package joshua.discriminative.semiring_parsingv2.pmodule

Source Code of joshua.discriminative.semiring_parsingv2.pmodule.SparseMap

package joshua.discriminative.semiring_parsingv2.pmodule;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

import joshua.discriminative.semiring_parsingv2.SignedValue;

public class SparseMap implements SparseArray<SignedValue, SparseMap>{
 
  private HashMap<Integer, SignedValue> tbl;
 
  public SparseMap(){
    this.tbl = new HashMap<Integer, SignedValue>() ;
  }
 
  public SparseMap(HashMap<Integer, SignedValue> tbl_){
    this.tbl = tbl_;
  }
 
  public void addInToArray(int id, SignedValue val) {
    this.tbl.put(id, val);
  }

  public SignedValue getValueAt(int id) {
    return this.tbl.get(id);
  }

  public Collection<Integer> getIds() {
    return  this.tbl.keySet();
  }
 
  public Collection<SignedValue> getValues() {
    return this.tbl.values();
  }
 
  /*
  public SparseArray<SignedValue> duplicate() {
   
    HashMap<Integer, SignedValue> res = new HashMap<Integer, SignedValue>();
    for(Integer id : getIds()){
      SignedValue val = getValueAt(id).duplicate();
      res.put(id, val);
    }
    return new SparseMap(res);
  }*/
 

  public void add(SparseMap b) {
    for(Map.Entry<Integer, SignedValue> feature : b.tbl.entrySet()){
      SignedValue valB = feature.getValue();
      SignedValue valA = this.tbl.get(feature.getKey());
      if(valA!=null){
        valA.add(valB);
      }else{
        this.tbl.put(feature.getKey(), SignedValue.duplicate(valB));
      }
    }     
  }

  public SparseMap duplicate() {
    HashMap<Integer, SignedValue> res = new HashMap<Integer, SignedValue>();
    for(Map.Entry<Integer, SignedValue> feature : this.tbl.entrySet()){
      SignedValue val = feature.getValue().duplicate();
      res.put(feature.getKey(), val);
    }
    return new SparseMap(res);
  }

}
TOP

Related Classes of joshua.discriminative.semiring_parsingv2.pmodule.SparseMap

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.