Table of Contents ⇒ Java Algorithm Library-Artery-Sample
Q02_00.java
package jp.avaj.lib.algo;
import jp.avaj.lib.test.L;
/**
* ArBiMap(Bidirectional Map)Simple sample of
*
*-Map gets the value from the key, but sometimes you want to get the key from the value.
*・ In such a case, you will have to create another Map with the keys and values reversed, but it feels like "it's really bad"..
*
*-ArBiMap is a bidirectional map that allows you to get the other party from either the key or the value..
*・ The terms "key" and "value" are used here for convenience, but this is just a word and there is no distinction..
*
*・ It is the user's responsibility to make each key and value unique..
*
*/
public class Q02_00 {
public static void main(String[] args) {
ArBiMap<String,String> biMap = new ArBiMap<String,String>();
L.p("Element settings");
{
biMap.putKeyValue("a0","b0");
biMap.putKeyValue("a1","b1");
biMap.putKeyValue("a2","b2");
biMap.putKeyValue("a3","b3");
biMap.putKeyValue("a4","b4");
//Check the contents
L.p(biMap.toString());
}
L.p("Get the value from the key");
{
L.p(biMap.getByKey("a1"));
L.p(biMap.getByKey("a3"));
}
L.p("Get the key from the value");
{
L.p(biMap.getByValue("b0"));
L.p(biMap.getByValue("b2"));
L.p(biMap.getByValue("b4"));
}
L.p("Specify a key to delete an element");
//The corresponding value is returned
{
L.p(biMap.removeByKey("a1"));
L.p(biMap.removeByKey("a3"));
//Check the contents
L.p(biMap.toString());
}
L.p("Delete an element by specifying a value");
//The corresponding key is returned
{
L.p(biMap.removeByValue("b0"));
L.p(biMap.removeByValue("b2"));
//Check the contents
L.p(biMap.toString());
}
L.p("Clear the element");
{
biMap.clear();
//Check the contents
L.p(biMap.toString());
}
}
}
The result is as follows.
result.txt
Element settings
{a1=b1, a2=b2, a3=b3, a4=b4, a0=b0}
Get the value from the key
b1
b3
Get the key from the value
a0
a2
a4
Specify a key to delete an element
b1
b3
{a2=b2, a4=b4, a0=b0}
Delete an element by specifying a value
a0
a2
{a4=b4}
Clear the element
{}
Recommended Posts