用jdk本身的map是实现不了这种情况: 有重复key 但是不需要新的映射值value覆盖先前的value。
public interface Map<K,V>将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射一个值。
自然继承一下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();
}
}
分享到:
相关推荐
Java中的HashMap是一种基于散列机制的Map接口的实现,它允许我们存储键值对。键是唯一的,而值可以重复。HashMap在处理数据时非常高效,因为其操作的时间复杂度接近于O(1)。这是通过使用散列函数将键映射到相应的...
2. **键值对**:每个元素都由一个键(Key)和一个值(Value)组成,键不能重复,而值可以重复。键通过equals()方法进行比较,以确保唯一性。 3. **容量与负载因子**:HashMap有初始容量(默认16)和负载因子(默认...
在Java编程中,HashMap是一种常用的集合类,它通过键值对的形式存储数据,其中键(key)必须是唯一的。当使用自定义类作为HashMap的键时,为了保证键的唯一性和正确的查找行为,我们需要遵循一些特定规则。这篇文章...
- 键(Key):HashMap中的每个元素由一个键和一个值组成,键是唯一的,不允许重复。 - 值(Value):键对应的值,可以重复。 - 哈希码(Hash Code):键对象通过hashCode()方法计算得到的整数值,用于定位元素在...
标题“HASHMAP缓存.txt”暗示了文档主要关注的是Java编程语言中HashMap作为缓存机制的应用,而描述中的重复文本可能是误操作,实际上并未提供额外的信息。标签同样重复,进一步确认了主题为HashMap缓存。接下来的...
在Java编程中,HashMap集合是开发者经常使用的数据结构之一,尤其在处理大量数据时,它的高效性和灵活性使得它成为首选。HashMap是Java集合框架的一部分,位于`java.util`包下,实现了Map接口,用于存储键值对(key-...
- **HashMap**:HashMap是Java集合框架的一部分,它通过哈希函数将键(Key)映射到对应的值(Value),形成键值对。键必须是唯一的,而值可以重复。 - **哈希表**:HashMap的核心数据结构是哈希表,通常由一个数组...
HashMap是一种关联容器,它提供了通过键(Key)快速查找值(Value)的功能,通常表现为O(1)的平均时间复杂度。这种数据结构利用哈希函数将键映射到一个数组的特定位置,使得查找、插入和删除操作变得非常高效。 STL...
- `containsKey(Object key)`:检查HashMap中是否包含指定的键。 - `containsValue(Object value)`:检查HashMap中是否存在指定的值。 - `remove(Object key)`:移除指定键的键值对。 - `size()`:返回HashMap中键值...
- 如果现有节点p的哈希值、键都与新数据完全匹配(即`p.hash == hash && (k = p.key) == key || key.equals(k)`),那么HashMap会认为这是重复添加,通常会忽略新数据。 - 如果节点p是TreeNode(表示链表已转换为...
在HashMap中,键(key)和值(value)是通过键值对的形式存储的,每个键都是唯一的,不允许有重复。 HashMap的内部工作原理可以分为以下几个关键点: 1. **哈希函数**:HashMap使用对象的`hashCode()`方法生成哈希...
在Java编程语言中,集合框架是处理对象数组的重要工具,其中`List`、`ArrayList`、`Vector`、`HashTable`和`HashMap`是五个关键的接口和类,它们各有不同的特性和用途。以下是这些概念的详细解释: 1. **List接口**...
Java中List根据map的某个key去重是指在Java编程中,如何根据List中的Map对象的某个key值去掉重复的Map对象。今天我们将分享一篇关于Java中List根据map的某个key去重的代码,这篇代码分享了如何使用Java语言来实现...
它允许存储key-value对,其中键(key)不能重复,而值(value)可以为null。这个数据结构是Java开发者必须掌握的基础知识之一,因为它在很多场景下都扮演着重要角色。 要理解HashMap的工作原理,首先需要了解它如何...
`HashMap` 允许键和值都为 `null`,并且在 `HashMap` 中,键的位置是唯一的,不允许重复。但是,如果有两个键的哈希码值相同(即产生哈希冲突),它们会被存储在同一个位置,这时如果键是 `null`,则会发生错误。 #...
1. **键的唯一性**:HashMap中的键是唯一的,不允许有重复的键,但值可以重复。 2. **非有序性**:HashMap中的元素没有特定的顺序,插入的顺序和遍历出来的顺序可能不一致。 3. **哈希存储**:HashMap通过计算键的...
Map 中的键不允许重复,但值可以重复。在 Java 中,HashMap、LinkedHashMap、TreeMap 都实现了 Map 接口,都是 Map 的子类,每个子类都有其特点和使用场景。 HashMap HashMap 是最常用的 Map 实现类,它根据键的...
3. **键值对(Key-Value Pair)**:HashMap中的数据以键值对的形式存在,键必须是唯一的,而值可以重复。 4. **哈希冲突(Hash Collision)**:当两个不同的键计算出相同的哈希码时,就会发生哈希冲突。HashMap通过...