当前位置:首页 > 开发 > IT生活 > 正文

哈希表之我见

发表于: 2015-04-15   作者:所言如愿   来源:转载   浏览:
摘要:     哈希表将原本需要存储的数据总量分散到它的每一个容器中,以此来提高查找效率。而具体如何分散到容器中,则是随应用场合而变。我实现的Hash表采用了最简易的一种映射关系:取模。       需要根据要处理的数据的数量级,来确定初始的容器数量。我拟定的数量级是1000000(百万),并选择初始容器数量为1000。我使用一维数组来作为Hash表的

    哈希表将原本需要存储的数据总量分散到它的每一个容器中,以此来提高查找效率。而具体如何分散到容器中,则是随应用场合而变。我实现的Hash表采用了最简易的一种映射关系:取模。

 

    需要根据要处理的数据的数量级,来确定初始的容器数量。我拟定的数量级是1000000(百万),并选择初始容器数量为1000。我使用一维数组来作为Hash表的容器,当发生冲突时就在数组内不断挂链,直到需要rehash

public class Hash {
	private LinkedList<User> ll[] = new LinkedList[1000];   //Hash表容器大小
	
	public Hash()
	{
	}
	
	
	public int doHash(int key)
	{
		//采用最简易的规则:取模
		int keyId = key%ll.length;
		return keyId;
	}
	
	
	public void insert(User u)
	{
		int key = doHash(u.getId());
		if(ll[key] == null){
			ll[key] = new LinkedList<User>();
			ll[key].add(u);
		}else{
			ll[key].getLast().setNext(u);
			ll[key].add(u);
		}
	}

	
	public boolean find(int id)
	{
		int temp = doHash(id);
		if(ll[temp] != null){
			User u = ll[temp].get(0);
			while(u != null){
				if(u.getId() == temp){
					System.out.println("Find it!");
					return true;
				}else{
					u = u.getNext();
				}
			}
		}
		System.out.println("用户不存在");
		return false;
	}
	
	
}
 

 

哈希表之我见

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
哈 希 表 传统上,在表中查找一个指定记录的方法都是遍历表中的所有记录直到出现一个匹配的关键字为
哈 希 表 传统上,在表中查找一个指定记录的方法都是遍历表中的所有记录直到出现一个匹配的关键字为
哈希表的有优点很多,最重要的就是速度快。 然而再好的东西也是有缺点的,无疑哈希表是基于数组的,
1. 哈希表的概念    对于动态查找表而言,1) 表长不确定;2)在设计查找表时,只知道关键字所属范
哈希表(HashTable)也叫散列表,是根据关键码值(KeyValue)而直接进行访问的数据结构。它通过把关键
牛文 http://www.cnblogs.com/wangjy/archive/2011/09/08/2171638.html 哈希表是种数据结构,它可以
本篇文章转载 http://www.dnbcw.com/biancheng/java/prek254784.html http://www.javaeye.com/topic
哈希表算法实现 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WINXP
散列函数(或散列算法,又称哈希函数,英语:Hash Function)是一种从任何一种数据中创建小的数字“
一、哈希表的概念 哈希表是一种新型的数据结构,它有两个重要的特点: 1.关键词查找 2.最优最快的查
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号