public void put(T value, Degree prob) {
    valueSorMap.put(value, prob);

    if (falze == null) {
      falze = prob.False();
    }
  }
 public String serialize() {
   StringBuilder sb = new StringBuilder();
   Iterator<T> iter = valueSorMap.keySet().iterator();
   while (iter.hasNext()) {
     T elem = iter.next();
     sb.append(elem).append("/").append(getDegree(elem).getValue());
     if (iter.hasNext()) sb.append(", ");
   }
   return sb.toString();
 }
 public Set<T> getSupport() {
   return valueSorMap.keySet();
 }
 public int size() {
   return valueSorMap.size();
 }
 public Number domainSize() {
   return valueSorMap.size();
 }
 public Degree getDegree(T value) {
   Degree deg = valueSorMap.get(value);
   return deg != null ? deg : falze;
 }
 public T getBest() {
   return valueSorMap.isEmpty() ? null : valueSorMap.keySet().iterator().next();
 }
 public Iterator<T> iterator() {
   return valueSorMap.keySet().iterator();
 }