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
分享到:
相关推荐
JDK HashMap源码粗略分析 根据10个问题进行阅读探讨
Java HashMap原理分析 Java HashMap是一种基于哈希表的数据结构,它的存储原理是通过将Key-Value对存储在一个数组中,每个数组元素是一个链表,链表中的每个元素是一个Entry对象,Entry对象包含了Key、Value和指向...
hashMap存储分析hashMap存储分析
HashMap 是 Java 中最常用的集合类之一,它是基于哈希表实现的,提供了高效的数据存取功能。HashMap 的核心原理是将键(key)通过哈希函数转化为数组索引,然后将键值对(key-value pair)存储在数组的对应位置。...
哈希映射(HashMap)是Java编程语言中广泛使用的数据结构之一,主要提供键值对的存储和查找功能。HashMap的实现基于哈希表的概念,它通过计算对象的哈希码来快速定位数据,从而实现了O(1)的平均时间复杂度。在深入...
面试中,可能会被问及HashMap的性能优化、内存占用分析、以及在特定场景下的选择,如并发环境、内存敏感的应用等。 总结,HashMap是Java编程中的基础工具,掌握其工作原理和常见面试题,不仅能帮助我们应对面试,更...
面试中,HashMap的源码分析与实现是一个常见的考察点,因为它涉及到数据结构、并发处理和性能优化等多个核心领域。本篇文章将深入探讨HashMap的内部工作原理、关键特性以及其在实际应用中的考量因素。 HashMap基于...
用过Java的都知道,里面有个功能强大的数据结构——HashMap,它能提供键与值的对应访问。不过熟悉JS的朋友也会说,JS里面到处都是hashmap,因为每个对象都提供了map[key]的访问形式。
HashMap导致CPU100% 的分析
hashmap的原理啊思想。
在Java编程语言中,`HashMap`和`HashTable`都是实现键值对存储的数据结构,但它们之间存在一些显著的区别,这些区别主要体现在线程安全性、性能、null值处理以及一些方法特性上。以下是对这两个类的详细分析: 1. ...
通过分析源码,开发者可以深入理解哈希表的工作原理,学习如何在易语言中实现高效的数据结构,这对于提升程序性能和优化内存管理至关重要。同时,这也为自定义数据结构或实现其他哈希表相关的功能提供了基础。
比较分析Vector、ArrayList和hashtable hashmap数据结构
hashMap基本工作原理,图解分析,基础Map集合
1.面试必考之HashMap源码分析与实现 伸缩性角度看HashMap的不足