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. Problem B: Bulbs

    Problem B: Bulbs Greg has an m×n grid of Sweet Lightbulbs of Pure Coolness he would like to turn on. ...

  2. 【Linux】linux内核学习

    linux内核获取 官网: https://www.kernel.org/ Linux操作系统的核心是模块化,可以使用lsmod命令查看内核模块,下面展示已载入系统的模块: [root@172.16. ...

  3. 安装部署及升级到Exchange Server 2010

    本文档详细的描述了,如何在Windows Server 2008 R2的环境下安装Exchange Server 2010,包括的内容有:   先检查组织环境: 1.请确保林的功能级别至少为 Wind ...

  4. jquery隐藏表格的某列

    $('#tableId tr').find('th:eq(3)').hide(); ---------------------------------------------------------- ...

  5. java排序,效率高的是哪种排序方法

    和所有其他语言是一样的.应该还是快速排序效率最高. public static void bubbleSort(int a[]) {int len = a.length;for (int i = 0; ...

  6. Ajax请求传递数组参数的方法

    方法一:拼接字符串参数 var arr={params:['param','param2']}; $.ajax({url:请求地址, data:arr, type:"POST", ...

  7. 尝试用kotlin做一个app(五)

    JSP后台管理系统 开发工具是IntelliJ IDEA+tomcat+mysql5.6.19+mysql-connector-java-5.1.48.jar+easyui+kindeditor 之前 ...

  8. QThread创建多线程程序

    最近在阅读Qt 5.9 C++开发指南,为了加深对书本上内容的理解,参照书上的讲解尝试写了一些demo,用于以后工作中查阅,如果涉及侵权请告知,实例程序samp13_1 mythread.h #ifn ...

  9. Web基础之Maven

    Web基础之Maven Maven是一个优秀的项目管理工具,可以很轻松的管理项目. POM和LifeCycle POM:Project Object Model.也就是项目模型,简单来说就是对项目进行 ...

  10. Linux系统学习笔记

    6.启动python cd /root/yq/v4_1_6309a_btc_nw_cq nohup python3 -u v4_1_6309a_btc_nw_cq.py >> 6309a_ ...