哈希表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#程序菜鸟级别的存在,写博客一方面是为了知识的共享,另一方面也是为了督促自己:大神,可以忽略这篇文文的.废话到此...... 哈希表是可以直接进行访问的数据结构,在形式上是类似字典的.不同的是, ...
随机推荐
- Codeforces1243C Tile Painting
原题面:https://codeforces.com/contest/1243/problem/C 题目大意:给定数字n,有n个方块,第i个和第j个之间的距离(abs(i-j))如果是n的因子,那么第 ...
- JPA#实体属性转换器
__震惊,一下内容竟然是空白 用途 (自动转换数据库字段和实体属性间的最佳取值): - 1. POJO持久化到数据库表中的时候,对某些特殊属性处理后,用处理过的值作为数据库字段的值. 2. 从数据库查 ...
- Springboot Bean循环依赖问题
参考博客原文地址: https://www.jb51.net/article/168398.htm https://www.cnblogs.com/mianteno/p/10692633.html h ...
- 九、JavaScript之分号使用,支持一行多语句
一.代码如下 二.执行效果如下 <!DOCTYPE html> <html> <meta http-equiv="Content-Type" cont ...
- Mac电脑上怎么设置环境变量
https://jingyan.baidu.com/article/8065f87f47b29523312498e4.html 环境变量是电脑操作系统中常用的一些变量,作用类似于将一些常用命令所在的文 ...
- bmp
function GetNumberBuffer(cZi: string; cwidth, cheight: Integer; FontName: string; bold, italic: Bool ...
- js原型链理解(4)-经典继承
经典继承就是组合继承,就是组合构造函数和原型链的优点混合继承. 1.避免引用类型的属性初始化 2.避免相同方法的多次初始化 function Super(name){ this.ages = [100 ...
- javascript 对象只读
var person = {}; Object.defineProperty(person, "name", { writable: false, value: "nic ...
- 51nod 1191:消灭兔子 贪心+优先队列
1191 消灭兔子 题目来源: 2013腾讯马拉松赛第三场 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 有N只兔子,每只有一个血量B[i],需要 ...
- cf 730J. Bottles
搞一个背包,233 要求用的瓶数最少,那么就业瓶数为第一关键,当瓶数相当后再以a[i] #include<bits/stdc++.h> #define N 100005 #define L ...