如何实现hashMap里value的unique# JobHunting - 待字闺中J*B2012-04-11 07:041 楼extendHashMap.put(k1,v1),如果extendHashMap 里已经有(k2,v1),就把(k2,v1)覆盖掉?
L*Q2012-04-11 07:042 楼插入操作应该会先search,看插入的key是不是已经存在,如果不存在,就插入。如果存在,那么可以有两种solution。第一,无法插入,函数返回值表明key已经存在。如果用户的两次插入key一样,那么他的目的应该是update value。返回一个值告诉用户,这个key已经存在,好处是避免误操作,让用户明确地调用update函数。第二,你说的覆盖掉。这是我推测的。如果是面试,我就把推测的实现讲一遍,分别给出两个solution的优缺点。【在 J**B 的大作中提到】: extendHashMap.put(k1,v1),如果extendHashMap 里已经有(k2,v1),就把(k2,v1): 覆盖掉?
e*l2012-04-11 07:043 楼弄个key-value反转的HashMap(v,k)就行啦【在 J**B 的大作中提到】: extendHashMap.put(k1,v1),如果extendHashMap 里已经有(k2,v1),就把(k2,v1): 覆盖掉?
J*B2012-04-11 07:044 楼是哦。public V put(K key, V value) {if(super.containsValue(value)){super.values().remove(value);}super.put(key, value);return value;不知道考啥? 这两个performance 有差么?【在 e***l 的大作中提到】: 弄个key-value反转的HashMap(v,k)就行啦