`

HashMap 分析

    博客分类:
  • java
 
阅读更多
package mars.test;

import mars.test.HashMap.Entry;

public class Testhashmap {

	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
		float loadFactor=0.75f;
		int loop=100;
		HashMap map = new HashMap(16, loadFactor);

		for (int i = 0; i < loop; i++) {
			map.put(i + ""+i, i); //indexFor(hash, table.length);
		}		
		
		int one=0;
		int two=0;
		int three=0;
		int gtthree=0;
		StringBuilder buffer=new StringBuilder();
		
		for (int i = 0; i < map.getTable().length; i++) {
			Entry e = map.getTable()[i];
			
			if (e != null && e.next != null) {
				int count=1;
				buffer.append("table[" + i + "]=\n");
				while (e.next != null){
					buffer.append("  e.hash="+e.hash);
					buffer.append("  e.value="+e.value+"\n");
					e = e.next;
					count++;
				}
				
				buffer.append("  e.hash="+e.hash);
				buffer.append("  e.value="+e.value+"\n");
				
				switch(count){
				case 2:{
					two++;
					break;
				}
				case 3:{
					three++;
					break;
				}
				default:
				gtthree++;
				}
			}else if(e!=null){
				one++;
			}
		}
		
		System.out.println(" ======================================================");
		System.out.println(" loadFactor="+loadFactor);
		System.out.println(" loop="+loop);
		
		System.out.println(" map table len="+map.getTable().length);
		System.out.println(" map len="+map.size());
		System.out.println(" one entry count= "+one);
		System.out.println(" two entries count= "+two);
		System.out.println(" three entries count= "+three);
		System.out.println(" greate than three entries count= "+gtthree);
		System.out.println(" ======================================================");
		System.out.println(buffer.toString());
	}

}

 

  • hash.pdf (16.3 KB)
  • 描述: result.pdf
  • 下载次数: 13
分享到:
评论

相关推荐

    HashMap分析

    JDK HashMap源码粗略分析 根据10个问题进行阅读探讨

    java HashMap原理分析

    Java HashMap原理分析 Java HashMap是一种基于哈希表的数据结构,它的存储原理是通过将Key-Value对存储在一个数组中,每个数组元素是一个链表,链表中的每个元素是一个Entry对象,Entry对象包含了Key、Value和指向...

    hashMap存储分析

    hashMap存储分析hashMap存储分析

    HashMap源码分析

    HashMap 是 Java 中最常用的集合类之一,它是基于哈希表实现的,提供了高效的数据存取功能。HashMap 的核心原理是将键(key)通过哈希函数转化为数组索引,然后将键值对(key-value pair)存储在数组的对应位置。...

    hashmap实现原理

    哈希映射(HashMap)是Java编程语言中广泛使用的数据结构之一,主要提供键值对的存储和查找功能。HashMap的实现基于哈希表的概念,它通过计算对象的哈希码来快速定位数据,从而实现了O(1)的平均时间复杂度。在深入...

    hashmap面试题_hashmap_

    面试中,可能会被问及HashMap的性能优化、内存占用分析、以及在特定场景下的选择,如并发环境、内存敏感的应用等。 总结,HashMap是Java编程中的基础工具,掌握其工作原理和常见面试题,不仅能帮助我们应对面试,更...

    面试必考之HashMap源码分析与实现

    面试中,HashMap的源码分析与实现是一个常见的考察点,因为它涉及到数据结构、并发处理和性能优化等多个核心领域。本篇文章将深入探讨HashMap的内部工作原理、关键特性以及其在实际应用中的考量因素。 HashMap基于...

    重载toString实现JS HashMap分析

    用过Java的都知道,里面有个功能强大的数据结构——HashMap,它能提供键与值的对应访问。不过熟悉JS的朋友也会说,JS里面到处都是hashmap,因为每个对象都提供了map[key]的访问形式。

    HashMap导致CPU100% 的分析

    HashMap导致CPU100% 的分析

    HashMap源码分析-思维导图.xmind

    hashmap的原理啊思想。

    HashMap与HashTable的区别(含源码分析)

    在Java编程语言中,`HashMap`和`HashTable`都是实现键值对存储的数据结构,但它们之间存在一些显著的区别,这些区别主要体现在线程安全性、性能、null值处理以及一些方法特性上。以下是对这两个类的详细分析: 1. ...

    HashMap类.rar

    通过分析源码,开发者可以深入理解哈希表的工作原理,学习如何在易语言中实现高效的数据结构,这对于提升程序性能和优化内存管理至关重要。同时,这也为自定义数据结构或实现其他哈希表相关的功能提供了基础。

    比较分析Vector、ArrayList和hashtable hashmap数据结构

    比较分析Vector、ArrayList和hashtable hashmap数据结构

    hashMap基本工作原理,图解分析,基础Map集合

    hashMap基本工作原理,图解分析,基础Map集合

    1.面试必考之HashMap源码分析与实现 伸缩性角度看HashMap的不足

    1.面试必考之HashMap源码分析与实现 伸缩性角度看HashMap的不足

Global site tag (gtag.js) - Google Analytics