Report abuse


			
import com.google.common.collect.Multimap;
import com.google.common.collect.Multimaps;
import static com.ociweb.jnb.april2008.Round2.Model.*;
import static com.ociweb.jnb.april2008.Round2.Make.*;
public class Round2 {
    enum Make { Ford, Chevrolet, Dodge }
    enum Model { Taurus, Focus, Mustang, Malibu, Impala, Corvette, Charger, Avenger, Viper }
    public static void main(String[] args) {
        Multimap makeToModel = Multimaps.newHashMultimap();
        makeToModel.put(Ford, Taurus);
        makeToModel.put(Ford, Focus);
        makeToModel.put(Ford, Mustang);
        makeToModel.put(Chevrolet, Malibu);
        makeToModel.put(Chevrolet, Impala);
        makeToModel.put(Chevrolet, Corvette);
        makeToModel.put(Dodge, Charger);
        makeToModel.put(Dodge, Avenger);
        makeToModel.put(Dodge, Viper);
        // forward search
        Make searchMake = Dodge;
        System.out.printf("%s makes ", searchMake);
        for (Model model : makeToModel.get(searchMake)) {
            System.out.printf("%s,", model);
        }
        System.out.printf("\n");
        // invert the map
        Multimap modelToMake = Multimaps.inverseHashMultimap(makeToModel);
        // reverse search
        Model searchModel = Impala;
        System.out.printf("model %s is made by %s\n", searchModel, modelToMake.get(searchModel));
    }
}