package com.levelup.java.collections;
import static org.junit.Assert.assertEquals;
import org.apache.commons.collections.BidiMap;
import org.apache.commons.collections.bidimap.DualHashBidiMap;
import org.apache.log4j.Logger;
import org.junit.Test;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
/**
* This java example will demonstrate how to perform a reverse key lookup.
*
* @author Justin Musgrove
* @see <a href=
* 'http://www.leveluplunch.com/java/examples/reverse-map-lookup-flip-key-values-bimap/'>Reverse
* map lookup - How to get key from value?</a>
*/
public class ReverseMapLookup {
private static final Logger logger = Logger
.getLogger(ReverseMapLookup.class);
@Test
public void flip_map_entries_with_guava() {
BiMap<String, String> stateCodeToDescription = HashBiMap.create();
stateCodeToDescription.put("WI", "Wisconsin");
stateCodeToDescription.put("MN", "Minnesota");
stateCodeToDescription.put("FL", "Florida");
stateCodeToDescription.put("IA", "Iowa");
stateCodeToDescription.put("OH", "Ohio");
BiMap<String, String> descriptionToStateCode = stateCodeToDescription
.inverse();
logger.info(descriptionToStateCode);
assertEquals("WI", descriptionToStateCode.get("Wisconsin"));
}
@Test
public void flip_map_entries_with_apachecommons() {
BidiMap stateCodeToDescription = new DualHashBidiMap();
stateCodeToDescription.put("WI", "Wisconsin");
stateCodeToDescription.put("MN", "Minnesota");
stateCodeToDescription.put("FL", "Florida");
stateCodeToDescription.put("IA", "Iowa");
stateCodeToDescription.put("OH", "Ohio");
BidiMap descriptionToStateCode = stateCodeToDescription
.inverseBidiMap();
logger.info(descriptionToStateCode);
assertEquals("IA", descriptionToStateCode.get("Iowa"));
}
}