/* Copyright 2003, Carnegie Mellon, All Rights Reserved */ package edu.cmu.minorthird.classify; import java.io.Serializable; import java.util.Map; import java.util.Set; import java.util.TreeMap; import java.util.Iterator; /** Set of objects, each with an associated weight */ public class WeightedSet<T> implements Serializable{ static private final long serialVersionUID=20080116L; private Map<T,Double>map; public WeightedSet(){ map=new TreeMap<T,Double>(); } /** Add a new object. */ public boolean add(T object,double weight){ boolean result=map.get(object)!=null; map.put(object,weight); return result; } /** Get weight for an object. */ public double getWeight(T object,double defaultWeight){ Double d=map.get(object); return(d==null?defaultWeight:d.doubleValue()); } public double getWeight(T object){ return getWeight(object,0.0); } public Set<T> asSet() { return map.keySet(); } public boolean contains(T object){ return map.get(object)!=null; } public Iterator<T> iterator(){ return map.keySet().iterator(); } public int size(){ return map.size(); } @Override public String toString(){ return map.toString(); } }