Code:
import java.util.Scanner;
import java.util.HashMap;
/** class BiDrirectionalMap */
class BiDirectionalMap
{
private HashMap
private HashMap
/** constructor **/
public BiDirectionalMap()
{
keyVal = new HashMap
valKey = new HashMap
}
/** function to clear maps **/
public void clear()
{
keyVal.clear();
valKey.clear();
}
/** function to get size of maps **/
public int size()
{
return keyVal.size();
}
/** function to insert element **/
public void put(String key, String val)
{
keyVal.put(key, val);
valKey.put(val, key);
}
/** function to get element **/
public String get(String ele)
{
String str = keyVal.get(ele);
if (str == null)
str = valKey.get(ele);
return str;
}
/** function to remove element **/
public void remove(String key)
{
String val = keyVal.get(key);
if (val != null)
{
keyVal.remove(key);
valKey.remove(val);
}
else
{
val = valKey.get(key);
if (val != null)
{
keyVal.remove(val);
valKey.remove(key);
}
else
System.out.println("\nError : Not found\n");
}
}
}
/** Class BiDirectionalMapTest **/
public class BiDirectionalMapTest
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Bi Directional Map Test\n");
BiDirectionalMap bdm = new BiDirectionalMap();
char ch;
/** Perform Bi Directional Map operations **/
do
{
System.out.println("\nBi Directional Map
System.out.println("1. put ");
System.out.println("2. get");
System.out.println("3. remove");
System.out.println("4. clear");
System.out.println("5. size");
int choice = scan.nextInt();
switch (choice)
{
case 1 :
System.out.println("Enter key and value");
bdm.put(scan.next(), scan.next() );
break;
case 2 :
System.out.println("Enter element");
String ele = scan.next();
String str = bdm.get(ele);
if (str != null)
System.out.println("Result : "+ str);
else
System.out.println("\nError : Not found\n");
break;
case 3 :
System.out.println("\nEnter element to be removed");
bdm.remove(scan.next() );
break;
case 4 :
System.out.println("\nBi Directional Map Cleared");
bdm.clear();
break;
case 5 :
System.out.println("\nSize = "+ bdm.size() );
break;
default :
System.out.println("Wrong Entry \n ");
break;
}
System.out.println("\nDo you want to continue (Type y or n) \n");
ch = scan.next().charAt(0);
} while (ch == 'Y'|| ch == 'y');
}
}
Output:
Bi Directional Map Test
Bi Directional Map
1. put
2. get
3. remove
4. clear
5. size
1
Enter key and value
green mango
Do you want to continue (Type y or n)
y
Bi Directional Map
1. put
2. get
3. remove
4. clear
5. size
1
Enter key and value
banana yellow
Do you want to continue (Type y or n)
y
Bi Directional Map
1. put
2. get
3. remove
4. clear
5. size
1
Enter key and value
red apple
Do you want to continue (Type y or n)
y
Bi Directional Map
1. put
2. get
3. remove
4. clear
5. size
2
Enter element
red
Result : apple
Do you want to continue (Type y or n)
y
Bi Directional Map
1. put
2. get
3. remove
4. clear
5. size
2
Enter element
mango
Result : green
Do you want to continue (Type y or n)
y
Bi Directional Map
1. put
2. get
3. remove
4. clear
5. size
2
Enter element
apple
Result : red
Do you want to continue (Type y or n)
y
Bi Directional Map
1. put
2. get
3. remove
4. clear
5. size
5
Size = 3
Do you want to continue (Type y or n)
y
Bi Directional Map
1. put
2. get
3. remove
4. clear
5. size
3
Enter element to be removed
red
Do you want to continue (Type y or n)
y
Bi Directional Map
1. put
2. get
3. remove
4. clear
5. size
2
Enter element
apple
Error : Not found
Do you want to continue (Type y or n)
y
Bi Directional Map
1. put
2. get
3. remove
4. clear
5. size
2
Enter element
red
Error : Not found
Do you want to continue (Type y or n)
y
Bi Directional Map
1. put
2. get
3. remove
4. clear
5. size
4
Bi Directional Map Cleared
Do you want to continue (Type y or n)
n
More Java Programs: