用jdk本身的map是实现不了这种情况: 有重复key 但是不需要新的映射值value覆盖先前的value。
public interface Map将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射一个值。
自然继承一下HashMap,改写它的一个方法就ok了
Java代码
import java.util.*;
class MyHashMap extends HashMap
{
@Override
public Object put(Object key, Object value)
{
//如果已经存在key,不覆盖原有key对应的value
if(!this.containsKey(key))
return super.put(key, value);
return null;
}
}
public class TestOne
{
public void printMap()
{
Map map = new MyHashMap();
map.put("1", "1");
map.put("2", "2");
map.put("3", "3");
map.put("1", "4");
Iterator it = map.keySet().iterator();
while (it.hasNext())
{
Object key = it.next();
System.out.println("key = " + key + " ; value = " + map.get(key));
}
}
public static void main(String[] args)
{
new TestOne().printMap();
}
}
分享到:
2010-07-08 17:21
浏览 6028
评论