`

HashMap中key重复处理

    博客分类:
  • Java
阅读更多

用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详解.pdf

    Java中的HashMap是一种基于散列机制的Map接口的实现,它允许我们存储键值对。键是唯一的,而值可以重复。HashMap在处理数据时非常高效,因为其操作的时间复杂度接近于O(1)。这是通过使用散列函数将键映射到相应的...

    HashMap类.rar

    2. **键值对**:每个元素都由一个键(Key)和一个值(Value)组成,键不能重复,而值可以重复。键通过equals()方法进行比较,以确保唯一性。 3. **容量与负载因子**:HashMap有初始容量(默认16)和负载因子(默认...

    Java用自定义的类作为HashMap的key值实例

    在Java编程中,HashMap是一种常用的集合类,它通过键值对的形式存储数据,其中键(key)必须是唯一的。当使用自定义类作为HashMap的键时,为了保证键的唯一性和正确的查找行为,我们需要遵循一些特定规则。这篇文章...

    自定义map实现java的hashmap

    - 键(Key):HashMap中的每个元素由一个键和一个值组成,键是唯一的,不允许重复。 - 值(Value):键对应的值,可以重复。 - 哈希码(Hash Code):键对象通过hashCode()方法计算得到的整数值,用于定位元素在...

    HASHMAP缓存.txt

    标题“HASHMAP缓存.txt”暗示了文档主要关注的是Java编程语言中HashMap作为缓存机制的应用,而描述中的重复文本可能是误操作,实际上并未提供额外的信息。标签同样重复,进一步确认了主题为HashMap缓存。接下来的...

    hashmap 集合

    在Java编程中,HashMap集合是开发者经常使用的数据结构之一,尤其在处理大量数据时,它的高效性和灵活性使得它成为首选。HashMap是Java集合框架的一部分,位于`java.util`包下,实现了Map接口,用于存储键值对(key-...

    学习笔记:三数组实现的HashMap

    - **HashMap**:HashMap是Java集合框架的一部分,它通过哈希函数将键(Key)映射到对应的值(Value),形成键值对。键必须是唯一的,而值可以重复。 - **哈希表**:HashMap的核心数据结构是哈希表,通常由一个数组...

    hashmap_demo.rar_DEMO_STL hashmap_hashmap

    HashMap是一种关联容器,它提供了通过键(Key)快速查找值(Value)的功能,通常表现为O(1)的平均时间复杂度。这种数据结构利用哈希函数将键映射到一个数组的特定位置,使得查找、插入和删除操作变得非常高效。 STL...

    20-集合框架020-HashMap-1080P 高清-AVC20

    - `containsKey(Object key)`:检查HashMap中是否包含指定的键。 - `containsValue(Object value)`:检查HashMap中是否存在指定的值。 - `remove(Object key)`:移除指定键的键值对。 - `size()`:返回HashMap中键值...

    HashMap新增数据原理.docx

    - 如果现有节点p的哈希值、键都与新数据完全匹配(即`p.hash == hash && (k = p.key) == key || key.equals(k)`),那么HashMap会认为这是重复添加,通常会忽略新数据。 - 如果节点p是TreeNode(表示链表已转换为...

    深入解读大厂java面试必考点之HashMap全套学习资料

    在HashMap中,键(key)和值(value)是通过键值对的形式存储的,每个键都是唯一的,不允许有重复。 HashMap的内部工作原理可以分为以下几个关键点: 1. **哈希函数**:HashMap使用对象的`hashCode()`方法生成哈希...

    经典讲解List和ArrayList和Vector和HashTable和HashMap区别

    在Java编程语言中,集合框架是处理对象数组的重要工具,其中`List`、`ArrayList`、`Vector`、`HashTable`和`HashMap`是五个关键的接口和类,它们各有不同的特性和用途。以下是这些概念的详细解释: 1. **List接口**...

    HashMap原理.pdf

    它允许存储key-value对,其中键(key)不能重复,而值(value)可以为null。这个数据结构是Java开发者必须掌握的基础知识之一,因为它在很多场景下都扮演着重要角色。 要理解HashMap的工作原理,首先需要了解它如何...

    动力节点-HashMap讲义.pdf

    `HashMap` 允许键和值都为 `null`,并且在 `HashMap` 中,键的位置是唯一的,不允许重复。但是,如果有两个键的哈希码值相同(即产生哈希冲突),它们会被存储在同一个位置,这时如果键是 `null`,则会发生错误。 #...

    java HashMap详解及实例代码

    1. **键的唯一性**:HashMap中的键是唯一的,不允许有重复的键,但值可以重复。 2. **非有序性**:HashMap中的元素没有特定的顺序,插入的顺序和遍历出来的顺序可能不一致。 3. **哈希存储**:HashMap通过计算键的...

    Map,HashMap,TreeMap的使用

    Map 中的键不允许重复,但值可以重复。在 Java 中,HashMap、LinkedHashMap、TreeMap 都实现了 Map 接口,都是 Map 的子类,每个子类都有其特点和使用场景。 HashMap HashMap 是最常用的 Map 实现类,它根据键的...

    java中HashMap的原理分析

    3. **键值对(Key-Value Pair)**:HashMap中的数据以键值对的形式存在,键必须是唯一的,而值可以重复。 4. **哈希冲突(Hash Collision)**:当两个不同的键计算出相同的哈希码时,就会发生哈希冲突。HashMap通过...

    Java中List根据map的某个key去重的代码

    Java中List根据map的某个key去重是指在Java编程中,如何根据List中的Map对象的某个key值去掉重复的Map对象。今天我们将分享一篇关于Java中List根据map的某个key去重的代码,这篇代码分享了如何使用Java语言来实现...

Global site tag (gtag.js) - Google Analytics