`
dreamstone
  • 浏览: 287380 次
  • 来自: ...
文章分类
社区版块
存档分类

java中的容器-hashMap

阅读更多

java的大部分容器都有一个须要了解的问题,就是什么时候须要扩张
看看hashMap的实现 ,两个关键的值
1,hashMap的默认容量
static final int DEFAULT_INITIAL_CAPACITY = 16;
默认的load factor
static final float DEFAULT_LOAD_FACTOR = 0.75f;
扩张相关的函数
  void addEntry(int hash, K key, V value, int bucketIndex) {
 Entry<K,V> e = table[bucketIndex];
        table[bucketIndex] = new Entry<K,V>(hash, key, value, e);
        if (size++ >= threshold)
            resize(2 * table.length);
   }
   
 void resize(int newCapacity) {
    Entry[] oldTable = table;
    int oldCapacity = oldTable.length;
    if (oldCapacity == MAXIMUM_CAPACITY) {
        threshold = Integer.MAX_VALUE;
        return;
    }

    Entry[] newTable = new Entry[newCapacity];
    transfer(newTable);
    table = newTable;
    threshold = (int)(newCapacity * loadFactor);
 }
 结论,在建立HashMap的时候可以考虑一下是否传入Load Factor和capacity的值来优化性能,
 渐少扩张次数(load factor和initial capacity), 或者渐少空间浪费(loadFacotr)

分享到:
评论

相关推荐

    Java 实例 - HashMap遍历源代码-详细教程.zip

    在Java编程语言中,HashMap是集合框架中一个重要的类,用于存储键值对的数据结构。这个实例教程将深入解析HashMap的遍历方法及其源代码,帮助开发者更好地理解和使用HashMap。以下是对这个主题的详细讲解: 1. **...

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

    在这个主题中,我们将深入探讨HashMap类,它是Java集合框架中的一个关键组件,特别是在标题“20-集合框架020-HashMap-1080P 高清-AVC20”和描述中所提到的内容。 HashMap是Java.util包中的一个类,它实现了Map接口...

    java提高篇(二三)-----HashMap.pdf

    HashMap是Java编程中常用的数据结构,它是一种基于哈希表实现的键值对存储容器,遵循Map接口。HashMap内部使用了“链表散列”的数据结构,即将数组和链表结合,以解决哈希冲突问题。 HashMap的实现原理是通过哈希...

    JAVA--HashMap热门面试题

    HashMap 是 Java 中一个常用的集合框架,特别是在面试中,它是最常被问到的问题之一。在这里,我们将讨论一些热门的 HashMap 面试题,以帮助您更好地理解 HashMap 的工作原理和应用。 为什么我们建议在定义 HashMap...

    java练习题--容器使用练习

    在Java编程语言中,容器是用于存储对象的集合框架,它们提供了一种高效且灵活的方式来组织和...记得在实践中不断挑战自己,尝试不同的场景和数据结构,以便更好地掌握Java容器的精髓。祝你在学习过程中取得优异的成绩!

    java基础教程----精华版

    - **变量**:在Java中,变量是存储数据的容器,分为基本类型(如int, double, boolean等)和引用类型(如类、接口、数组)。 - **数据类型**:Java有两大类数据类型,即原始类型(primitives)和引用类型...

    java对象容器(涉及HashMap,ArrayList,Set等)

    在Java中,最常见的对象容器包括ArrayList、List、Set和HashMap等。这些容器各自具有不同的特性和用途,理解并熟练掌握它们对于提升Java编程能力至关重要。 ArrayList是Java集合框架中的一个动态数组,它允许我们在...

    Core Java Volume I - Fundamentals

    10. **集合框架**:如ArrayList、LinkedList、HashSet、HashMap等,它们提供了存储和操作对象的容器。 11. **输入/输出流**:包括文件I/O、对象序列化和网络I/O,是处理数据传输的基础。 12. **多线程**:Java内置...

    Java-Interview-超全集合github上评分最高的jiva面试题

    Java面试是每位Java开发者职业生涯中的重要环节,而GitHub上的高分项目往往汇聚了社区的智慧结晶,提供了丰富的面试准备资源。"Java-Interview-超全集合github上评分最高的jiva面试题"就是一个这样的宝藏,它涵盖了...

    java7-8中的 HashMap和ConcurrentHashMap全解析

    首先,`HashMap`是Java中最基本的非线程安全的散列映射容器。它基于哈希表实现,提供O(1)的平均时间复杂度进行插入、删除和查找操作。在Java 7中,`HashMap`内部由数组和链表构成,当多个键映射到同一个哈希桶时,会...

    Java容器总结

    总的来说,Java容器在软件开发中扮演着不可或缺的角色。无论是简单的数据存储还是复杂的业务逻辑管理,理解并熟练掌握这些容器及其源码,都能提升我们的编程能力和问题解决能力。同时,合理利用工具类,能有效提高...

    java中容器是什么意思?

    在Java编程语言中,容器(Container)是一种用来存储和管理数据结构的重要概念,它提供了组织、存储和操作数据的方式。容器通常指的是集合框架中的各种类,如List、Set、Map等,它们允许开发者以不同的方式存储和...

    java HashMap原理分析

    HashMap广泛应用于Java中的Set、Map等容器中,用于快速根据Key找到元素。例如,Set的contains方法和Map的get方法都是通过Key去查找的。HashMap的实现需要正确地实现hashCode和equals方法,以避免哈希碰撞问题和...

    Java 面试宝典 - v1.1

    Java集合框架是面试中的热点,理解ArrayList、LinkedList、HashSet、HashMap等容器的内部实现和使用场景至关重要。此外,对于并发容器,如ConcurrentHashMap和CopyOnWriteArrayList的特性也要有深入理解。 三、内存...

    JAVA程序员必读--基础篇

    此外,Java集合框架是另一个关键部分,包括List、Set和Map接口,以及ArrayList、LinkedList、HashSet、HashMap等实现。这些集合类提供了存储和操作对象的方式。 在面向对象编程方面,你会学习类的定义、继承、封装...

    JAVA课件---很快的掌握java语言

    这是Java API的一部分,提供了各种数据结构,如ArrayList、LinkedList、HashSet、HashMap等,用于高效地存储和操作数据。此外,泛型是集合框架的一个重要补充,它允许我们在编译时检查类型安全,减少运行时错误。 ...

    java 使用web service读取HashMap里的数值

    本文将详细介绍如何在Java WebService中使用`HashMap`来传递和读取数据。 #### WebService与HashMap的基本概念 1. **WebService**:一种开放的标准服务,通过HTTP协议进行数据传输,可以跨平台、跨语言地提供服务...

    Java编程71-100例 Java编程71-100例

    3. 数组与集合:Java数组是存储同类型数据的容器,而集合框架如ArrayList、LinkedList、HashSet、HashMap等则提供了更灵活的数据存储方式。通过实例,学习者可以了解它们的用法和适用场景。 4. 函数与方法:函数是...

    JAVA核心技术--高级特征(第八版)--第三部分

    《部分7》可能涵盖了ArrayList、LinkedList、HashSet、HashMap等基本容器的内部实现与性能分析,以及它们在不同场景下的适用性。此外,TreeSet和TreeMap的红黑树原理、CopyOnWriteArrayList和ConcurrentHashMap等...

Global site tag (gtag.js) - Google Analytics