`
bearsorry
  • 浏览: 93969 次
  • 性别: Icon_minigender_2
  • 来自: 湖南
社区版块
存档分类
最新评论

用java分析hash表结构及性能(三)

 
阅读更多

 貌似前面一篇的存储空间的测试木有弄上来。。。这里在把代码附上吧:

package cn.java1118;

public class TestMemory {
	
	public static void main(String[] args) {
		
		System.out.println("刚开始时----虚拟机上空闲的内存量为:"+Runtime.getRuntime().freeMemory());
		System.out.println("刚开始时----虚拟机上内存总量为:"+Runtime.getRuntime().totalMemory());
		System.out.println("刚开始时----虚拟机试图使用的最大内存量为:"+Runtime.getRuntime().maxMemory());
		//调用完一个hashmap之后
		MyHashMap04<String, String> map = new MyHashMap04<String, String>();
		for(int i=0;i<1000000;i++){  
	        map.add(""+i, ""+i*100);  
	        }
		System.out.println("调用了hashmap之后----虚拟机上空闲的内存量为:"+Runtime.getRuntime().freeMemory());
		System.out.println("调用了hashmap之后----虚拟机上内存总量为:"+Runtime.getRuntime().totalMemory());
		System.out.println("调用了hashmap之后----虚拟机试图使用的最大内存量为:"+Runtime.getRuntime().maxMemory());
		//开辟同样大的数组空间之后
//		String[] aaa = new String[1000000];
//		 for (int i = 0; i < 1000000; i++) {
//			    aaa[i] = new String("aaa");
//			 }
//		System.out.println("调用数组之后----虚拟机上空闲的内存量为:"+Runtime.getRuntime().freeMemory());
//		System.out.println("调用数组之后----虚拟机上内存总量为:"+Runtime.getRuntime().totalMemory());
//		System.out.println("调用数组之后----虚拟机试图使用的最大内存量为:"+Runtime.getRuntime().maxMemory());
	}

}

 

刚开始时----虚拟机上空闲的内存量为:4868664

刚开始时----虚拟机上内存总量为:5177344

刚开始时----虚拟机试图使用的最大内存量为:832438272

调用数组之后----虚拟机上空闲的内存量为:16260656

调用数组之后----虚拟机上内存总量为:44433408

调用数组之后----虚拟机试图使用的最大内存量为:832438272

刚开始时----虚拟机上空闲的内存量为:4905008

刚开始时----虚拟机上内存总量为:5177344

刚开始时----虚拟机试图使用的最大内存量为:832438272

调用了hashmap之后----虚拟机上空闲的内存量为:69518912

调用了hashmap之后----虚拟机上内存总量为:169803776

调用了hashmap之后----虚拟机试图使用的最大内存量为:832438272

这是我测试了几次的效果。。。每次测试的时候都是使用hashmap比数组所余下的空间要大一些,为了试验的准确性,我是顺者测,逆着测,重启eclipse测,开机重启测。。。各种测啊。。。结果都差不多。。。终于搞定了!!!!!

 

 

但我发现了,我的代码还得大大修改。。。暂时先这样吧。。。

<!--EndFragment-->
分享到:
评论
2 楼 luliangy 2012-02-06  
超姐啊,原来你的三篇关于哈希的博客是这么写的啊~
1 楼 hupengwei 2011-11-26  
超姐强悍!向你学习!~~

相关推荐

    哈希计算工具 java-hash.7z

    综上所述,`java-hash.7z` 工具包可能包含用于Java环境下的各种哈希计算工具和示例,帮助开发者进行数据校验、安全存储、性能优化等工作。通过理解和应用这些哈希计算技术,可以提升软件的安全性和效率。

    数据结构与算法分析 java语言描述第三版 源代码

    《数据结构与算法分析——Java语言描述》第三版是一本深入探讨数据结构和算法的经典教材。这本书通过使用Java编程语言,向读者展示了如何设计、实现和分析一系列关键的数据结构和算法,以解决实际问题。书中的源代码...

    打造最快的Hash表(和Blizzard的对话)

    通过上述分析,我们可以看到Blizzard的Hash表实现不仅体现了对散列技术的深刻理解,而且还展示了如何利用多个散列值来进一步提高Hash表的性能和准确性。这种技术尤其适用于处理大量数据的情况,能够显著减少冲突的...

    Java里多个Map的性能比较(TreeMap、HashMap、ConcurrentSkipListMap)

    在Java编程中,Map接口是用于存储键值对的数据结构,而Java提供了多种Map的实现,包括TreeMap、HashMap和ConcurrentSkipListMap。本文主要比较了这三种Map的性能,尤其是在插入和查找操作上的效率。 1. **TreeMap**...

    数据结构与算法分析_Java语言描述(第3版)源码分享

    《数据结构与算法分析_Java语言描述(第3版)》是一本深入探讨数据结构和算法分析的专业书籍,它以Java编程语言为载体,详细阐述了如何高效地组织和操作大量数据,以及如何评估和比较不同算法的性能。这本书不仅涵盖了...

    哈希表java实现及简单演示

    哈希表,又称为散列表,是一种数据结构,它通过使用散列函数将键(Key)映射到数组的特定位置来实现快速访问。在Java中,哈希表的实现主要依赖于`java.util.HashMap`类,它是基于哈希表的Map接口实现。在这个Java版...

    数据结构与算法分析java语言描述书上源代码

    5. **哈希表** (CuckooHashTable.java): 哈希表是一种基于哈希函数的查找结构,用于实现快速的查找、插入和删除操作。Cuckoo哈希是一种特殊的哈希表设计,通过Cuckoo算法处理冲突,具有较高的空间效率和较低的查找...

    10种java性能优化方案.docx

    - **选择高效的算法和数据结构**:例如,使用哈希表而不是链表进行查找操作。 - **避免不必要的计算**:如文档中提到的,优化算法的关键部分,特别是那些占总运行时间较大比例的部分。 - **利用缓存技术**:通过...

    数据结构 课件java版本

    本课件“数据结构 课件java版本”是基于Java编程语言来讲解这一主题的,旨在帮助学生和开发者深入理解数据结构的基本概念,并掌握用Java实现这些数据结构的方法。 在Java中,数据结构主要分为以下几类: 1. **数组...

    一致性hashjava实现

    Ketama一致性哈希算法由Last.fm的工程师开发,其设计目标是优化分布式哈希表的性能,特别是在处理大量小键值对时。它通过引入虚拟节点的概念,提高了哈希空间的分布均匀性,减少了因节点变动导致的数据迁移。 1. **...

    java描述版数据结构(简单易懂)

    哈希表(Hash Table)是一种通过哈希函数快速定位数据的数据结构,实现了键值对的快速查找。Java中的哈希表主要由`java.util.HashMap`和`java.util.Hashtable`类代表,具有O(1)的平均查找时间复杂度。 六、高级排序...

    uthash开源的hash函数实现

    UTHASH 是一个开源的 C 语言库,提供了一种简单且高效的哈希表实现,用于在 C 代码中快速查找和管理数据结构。这个库的主要功能是提供一个宏定义的集合,可以方便地将结构体转化为哈希表,进而进行添加、删除、查找...

    Java-codes.rar_HASH JAVA_huffman

    在给定的“Java-codes.rar_HASHJAVA_huffman”压缩包中,包含了多个与Java编程相关的示例代码,主要涉及哈夫曼编码(Huffman Coding)、快速排序(Quicksort)、哈希表(Hash)以及一种名为“q_sort”的排序算法。...

    数据结构与算法分析_Java语言描述(第3版)源码

    7. **哈希表**(CuckooHashTable.java, CuckooHashTableClassic.java): 哈希表提供了一种快速查找和插入数据的方法,通过散列函数将键映射到数组的索引。Cuckoo哈希是一种特殊的哈希表实现,使用了Cuckoo算法,当冲突...

    PersistentIdealHashTree-Java实现

    通过以上分析,我们可以看出,PersistentIdealHashTree的Java实现不仅涉及到数据结构的设计和优化,还需要考虑并发编程中的线程安全问题。理解并掌握这种数据结构的实现原理,对于提升Java程序员在大数据处理和并发...

    数据结构与算法分析Java语言实现源码第三版

    - `CuckooHashTable.java` 和 `CuckooHashTableClassic.java` 文件是关于Cuckoo哈希表的实现,这是一种高效的动态哈希表,通过使用两个或多个哈希函数来解决冲突,从而保持较低的查找和插入时间复杂度。 2. **排序...

    数据结构与算法分析-java

    本书由Mark Allen Weiss所著,目的在于通过Java语言来分析和探讨数据结构及算法的原理与应用。根据提供的部分目录内容,本书共分为12个章节,涵盖了数据结构与算法分析的各个重要领域。 在第1章“引言”中,作者...

    数据结构与算法分析(Java版)

    ### 数据结构与算法分析(Java版)核心知识点详解 #### 一、概述 《数据结构与算法分析(Java版)》是由Robert Lafore编写的一本详细介绍数据结构与算法原理及其实现的书籍。本书旨在帮助读者理解如何通过数据结构...

    在Java中运用Hashtables.rar_hash table

    在Java编程语言中,哈希表(Hash Table)是一种常用的数据结构,它的实现通常通过`Hashtable`类。这个数据结构提供了快速的插入、删除和查找操作,其平均时间复杂度为O(1)。`Hashtable`是Java集合框架的一部分,位于...

Global site tag (gtag.js) - Google Analytics