📄 multimap.java
字号:
package db;import java.util.*;import java.util.Map;import java.util.Collection;import java.util.Set;public class MultiMap implements Map{ private Map m_map; public MultiMap () { m_map = new HashMap(); } public Object put (Object key, Object val) { if (!m_map.containsKey(key)) { m_map.put (key, new TreeSet()); } Set attList = getValues(key); attList.add (val); return attList; } public void putAll (Map t) { Set keys = t.keySet (); for (Iterator keyIter = keys.iterator (); keyIter.hasNext(); ) { Object key = keyIter.next(); Object value = t.get (key); // copying a multi map if (value instanceof Set) { m_map.put (key, value); } else // copying an ordinary map { put (key, value); } } } public Object get (Object key) { if (m_map.containsKey(key)) return m_map.get(key); else return Collections.EMPTY_SET; } public Set getValues (Object key) { return (Set)get(key); } public void clear () { m_map.clear (); } public Set keySet () { return m_map.keySet(); } public Collection values () { return m_map.values (); } public int size() { return m_map.size(); } public Object remove(Object object) { return m_map.remove(object); } public Object removeItem (Object object) { for (Iterator iter = m_map.values().iterator(); iter.hasNext(); ) { Set valSet = (Set) iter.next(); if (valSet.contains(object)) valSet.remove(object); } return object; } public Set entrySet() { return m_map.entrySet(); } public boolean isEmpty() { return m_map.isEmpty(); } public boolean containsValue(Object object) { // must iterate through each list for (Iterator attIter = m_map.values().iterator(); attIter.hasNext(); ) { Set valSet = (Set) attIter.next(); for (Iterator valIter = valSet.iterator(); valIter.hasNext(); ) { if (object.equals (valIter.next())) return true; } } return false; } public boolean setContainsValue (Object key, Object object) { Set vals = getValues (key); return vals.contains(object); } public boolean containsKey(Object object) { return m_map.containsKey(object); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -