哈希表hashTable的Java设计
1:哈希表的概念
2:设计原理
3:哈希表的Java设计
package hashTable; import java.util.HashMap; /**
* @author :dazhu
* @date :Created in 2020/3/20 15:21
* @description:哈希表的学习
* @modified By:
* @version: $
*/
public class Main {
public static void main(String[] args){
HashTable ht = new HashTable(10,1);
ht.insert(0);
ht.insert(1);
ht.insert(2);
ht.insert(3);
ht.insert(4);
ht.insert(5);
ht.insert(6);
ht.insert(7);
ht.insert(8);
ht.insert(9); ht.insert(13);
ht.insert(14);
ht.insert(15); ht.insert(23);
ht.insert(24);
ht.insert(25); ht.insert(33);
ht.insert(34);
ht.insert(35); }
} class HashTable{
public Node[] array;//内置数组
public int factor ;//装载因子 public HashTable(int length,int factor){
this.array = new Node[length];
this.factor = factor;
} public void insert(int a){
//如果是第一次插入,则放入array中,
//如果已经数据再该位置,则加载该位置后面的链表中。链表的head。
if(array[hashCode(a)]==null){
array[hashCode(a)] = new Node(a);
}
else{
insertList(a);
}
} public void delete(int a){ } /**
* 始终使新加入数据节点,存放在链表的head
* @param a 待加入数据
*/
public void insertList(int a){
//当前数据的hashCode数组中存放的元素
Node headNode = array[hashCode(a)];
//当前数据节点
Node temp = new Node(a);
//新数据节点指向原来的head。
temp.next = headNode;
//然后将head存入数组中
array[hashCode(a)] = temp;
}
/**
*
* @param a 待输入数
* @return 待输入数的hashcode。
* 使用取模的方法来获取当前数的hashcode
*/
public int hashCode(int a){
return a%array.length;
} /**
* 解决hash冲突的链表节点
*/
class Node{
public int val;
public Node next;
public Node(int val){
this.val = val;
}
}
}
哈希表hashTable的Java设计的更多相关文章
- Java中哈希表(Hashtable)是如何实现的
Java中哈希表(Hashtable)是如何实现的 Hashtable中有一个内部类Entry,用来保存单元数据,我们用来构建哈希表的每一个数据是Entry的一个实例.假设我们保存下面一组数据,第一列 ...
- 哈希表(hashtable)的javascript简单实现
javascript中没有像c#,java那样的哈希表(hashtable)的实现.在js中,object属性的实现就是hash表,因此只要在object上封装点方法,简单的使用obejct管理属性的 ...
- 哈希表(Hashtable)简述
一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中 ...
- c/c++ 哈希表 hashtable
c/c++ 哈希表 hashtable 概念:用key去查找value 实现hash函数有很多方法,本文用除留余数法. 除留余数法的概念: 取一个固定的基数的余数,注意不能用偶数,用偶数的话,分布会不 ...
- C#中哈希表(HashTable)的用法详解以及和Dictionary比较
1. 哈希表(HashTable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对, ...
- 转 C#中哈希表(HashTable)的用法详解
看了一遍有关哈希表的文字,作者总结的真是不错 .收藏起来 1. 哈希表(HashTable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提 ...
- java——哈希表 HashTable
在一个类中重写hashCode()和equals() package Date_pacage.hash; public class Student { private int grade; priva ...
- 哈希表 HashTable(又名散列表)
简介 其实通过标题上哈希表的英文名HashTable,我们就可以看出这是一个组合的数据结构Hash+Table. Hash是什么?它是一个函数,作用可以通过一个公式来表示: index = HashF ...
- C# 哈希表HashTable的简单使用
本人C#程序菜鸟级别的存在,写博客一方面是为了知识的共享,另一方面也是为了督促自己:大神,可以忽略这篇文文的.废话到此...... 哈希表是可以直接进行访问的数据结构,在形式上是类似字典的.不同的是, ...
随机推荐
- 利用Python实现自动扫雷
自动扫雷一般分为两种,一种是读取内存数据,而另一种是通过分析图片获得数据,并通过模拟鼠标操作,这里我用的是第二种方式. 一.准备工作 我的版本是 python 3.6.1python的第三方库:win ...
- python --- mysql数据库的操作
1.pymysql的初使用 import pymysql db_config = { 'host' :'127.0.0.1', 'user':'root', ', , 'database':'test ...
- int类型和char类型的区别
下面三个定义式的区别: int i = 1; char i = 1; char i = '1'; int用来定义整型变量,char用来定义字符型变量,要清楚的知道三个定义式的区别,可以比较它们在内存中 ...
- 使用CORDIC算法求解角度正余弦及Verilog实现
本文是用于记录在了解和学习CORDIC算法期间的收获,以供日后自己及他人参考:并且附上了使用Verilog实现CORDIC算法求解角度的正弦和余弦的代码.简单的testbench测试代码.以及在Mod ...
- 解决CSS背景模糊
.banner{ background:url(banner.jpg); -moz-background-size:100% 100%; background-size:100% 100%; }
- 浅谈arduino的bootloader
在arduino的板子上,作为核心的avr单片机往往都会烧录一个bootloader,这个叫做bootloader的东东其实是arduino研发团队针对arduino板子开发的一小段代码,借助于这段代 ...
- 指令——df
df是disk free 的简称,这个指令的功能和作用是查看磁盘空间. 可以加上 -h 的选项,来提高可读性. [he@localhost ~]$ df -h文件系统(磁盘名称) 总容量 ...
- <强化学习>无模型下计算给定策略对应的价值函数,Model free Prediction,评估一个给定策略的表现
一.Intro Prediction只是评估给定策略的表现,直白的说它是找 “在环境ENV下,AGENT按照给定的策略pai,AGENT的价值函数”. 这篇blog只介绍三种计算方法,没有涉及到 “求 ...
- 二十四、SAP中打开帮助文件
一.在代码输入界面,选中一个关键词,按一下F1,或者问号 二.显示出的帮助内容
- 037-PHP如何返回闭包函数实例
<?php /*: 如何返回闭包函数实例*/ # 直接调用将不会输出$txt的内容 function demo() { $txt = '我爱PHP'; $func = function () u ...