import
java.lang.*;
import
java.util.Collection;
import
java.util.EnumMap;
import
java.util.Iterator;
import
java.util.Map;
import
java.util.Map.Entry;
import
java.util.Set;
public
class
EnumMapImpl<K
extends
Enum<K>, V> {
EnumMap<K, V> enumMap;
public
EnumMapImpl(Class<K> keyType)
{
enumMap =
new
EnumMap<K, V>(keyType);
}
public
EnumMapImpl(EnumMap<K, ?
extends
V> m)
{
enumMap =
new
EnumMap<K, V>(m);
}
public
EnumMapImpl(Map<K, ?
extends
V> m)
{
enumMap =
new
EnumMap<K, V>(m);
}
public
void
clear() { enumMap.clear(); }
public
boolean
containsValue(Object value)
{
return
enumMap.containsValue(value);
}
public
boolean
containsKey(Object key)
{
return
enumMap.containsKey(key);
}
public
Set<K> keySet() {
return
enumMap.keySet(); }
public
Set<Map.Entry<K, V> > entrySet()
{
return
enumMap.entrySet();
}
public
V get(Object key) {
return
enumMap.get(key); }
public
V put(K key, V value)
{
return
enumMap.put(key, value);
}
public
void
putAll(Map<?
extends
K, ?
extends
V> map)
{
enumMap.putAll(map);
}
public
int
size() {
return
enumMap.size(); }
public
Collection<V> values()
{
return
enumMap.values();
}
public
boolean
isEmpty() {
return
enumMap.isEmpty(); }
enum
Week_Days {
SUNDAY,
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY;
}
public
static
void
main(String[] args)
{
EnumMapImpl<Week_Days, Integer> enumMap
=
new
EnumMapImpl<Week_Days, Integer>(Week_Days.
class
);
enumMap.put(Week_Days.SUNDAY,
1
);
enumMap.put(Week_Days.MONDAY,
2
);
enumMap.put(Week_Days.TUESDAY,
3
);
enumMap.put(Week_Days.WEDNESDAY,
4
);
enumMap.put(Week_Days.THURSDAY,
5
);
enumMap.put(Week_Days.FRIDAY,
6
);
enumMap.put(Week_Days.SATURDAY,
7
);
System.out.println(
"The size of the enumMap is: "
+ enumMap.size());
System.out.println();
System.out.println(
"The values of the enumMap is: "
);
Collection<Integer> ci = enumMap.values();
Iterator<Integer> iin1 = ci.iterator();
while
(iin1.hasNext())
{
System.out.print(iin1.next() +
"\t"
);
}
System.out.println();
System.out.println();
System.out.println(
"The key set of the enumMap is: "
);
Set<Week_Days> ws = enumMap.keySet();
Iterator<Week_Days> iin2 = ws.iterator();
while
(iin2.hasNext())
{
System.out.print(iin2.next() +
" "
);
}
System.out.println();
System.out.println();
System.out.println(
"The enumMap is: "
);
Iterator<Entry<Week_Days, Integer> > week_iterator;
Set<Entry<Week_Days, Integer> > wi = enumMap.entrySet();
week_iterator = wi.iterator();
while
(week_iterator.hasNext())
{
System.out.println(week_iterator.next() +
"\t"
);
}
System.out.println();
System.out.println(
"The enumMap contains Key SUNDAY "
+
": "
+ enumMap.containsKey(Week_Days.SUNDAY));
System.out.println(
"The enumMap contains Value 1 "
+
": "
+ enumMap.containsValue(
1
));
enumMap.clear();
if
(enumMap.isEmpty())
System.out.println(
"The EnumMap is now empty."
);
else
System.out.println(
"The EnumMap is not empty."
);
}
}