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设计的更多相关文章

  1. Java中哈希表(Hashtable)是如何实现的

    Java中哈希表(Hashtable)是如何实现的 Hashtable中有一个内部类Entry,用来保存单元数据,我们用来构建哈希表的每一个数据是Entry的一个实例.假设我们保存下面一组数据,第一列 ...

  2. 哈希表(hashtable)的javascript简单实现

    javascript中没有像c#,java那样的哈希表(hashtable)的实现.在js中,object属性的实现就是hash表,因此只要在object上封装点方法,简单的使用obejct管理属性的 ...

  3. 哈希表(Hashtable)简述

    一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中 ...

  4. c/c++ 哈希表 hashtable

    c/c++ 哈希表 hashtable 概念:用key去查找value 实现hash函数有很多方法,本文用除留余数法. 除留余数法的概念: 取一个固定的基数的余数,注意不能用偶数,用偶数的话,分布会不 ...

  5. C#中哈希表(HashTable)的用法详解以及和Dictionary比较

    1.  哈希表(HashTable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对, ...

  6. 转 C#中哈希表(HashTable)的用法详解

    看了一遍有关哈希表的文字,作者总结的真是不错 .收藏起来 1.  哈希表(HashTable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提 ...

  7. java——哈希表 HashTable

    在一个类中重写hashCode()和equals() package Date_pacage.hash; public class Student { private int grade; priva ...

  8. 哈希表 HashTable(又名散列表)

    简介 其实通过标题上哈希表的英文名HashTable,我们就可以看出这是一个组合的数据结构Hash+Table. Hash是什么?它是一个函数,作用可以通过一个公式来表示: index = HashF ...

  9. C# 哈希表HashTable的简单使用

    本人C#程序菜鸟级别的存在,写博客一方面是为了知识的共享,另一方面也是为了督促自己:大神,可以忽略这篇文文的.废话到此...... 哈希表是可以直接进行访问的数据结构,在形式上是类似字典的.不同的是, ...

随机推荐

  1. 059、Java中定义一个有参数无返回值的方法

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  2. sed的妙用

    sed 使用-n选项和p可以实现在指定范围内的搜索貌似实现了比grep更精确的搜索

  3. Java 日期与时间

    章节 Java 基础 Java 简介 Java 环境搭建 Java 基本语法 Java 注释 Java 变量 Java 数据类型 Java 字符串 Java 类型转换 Java 运算符 Java 字符 ...

  4. P1044 火星数字

    P1044 火星数字 转跳点:

  5. HDU - 6152 Friend-Graph(暴力)

    题意:给定n个人的关系,若存在三个及以上的人两两友好或两两不友好,则"Bad Team!",否则"Great Team!". 分析:3000*3000内存100 ...

  6. 51nod 1439:互质对 容斥原理

    1439 互质对 题目来源: CodeForces 基准时间限制:2 秒 空间限制:131072 KB 分值: 160 难度:6级算法题  收藏  取消关注 有n个数字,a[1],a[2],-,a[n ...

  7. Vue - 项目配置 ( element , 安装路由 , 创建路由 )

    1,安装element     :      vue add element 2,安装路由          :     vue add router 3,创建路由的过程  :   (1) 新建 vu ...

  8. Arduino读取串口数据并进行字符串分割

    String comdata = ""; int numdata[6] = {0}, PWMPin[6] = {3, 5, 6, 9, 10, 11}, mark = 0; voi ...

  9. Spring Boot2(007):关于Spring beans、依赖注入 和 @SpringBootApplication 注解

    一.关于Spring beans 和 依赖注入(Dependency Injection) spring boot 和 Spring 全家桶无缝衔接,开发过程中可以很轻松地使用 Spring 全家桶的 ...

  10. BeanUtils使用将一个对象拷贝到另外一个对象

    这里的BeanUtils是BeanUtils是org.springframework.beans.BeanUtils,和org.apache.commons.beanutils.BeanUtils是有 ...