当前位置: 首页 > news >正文

电脑网站设计制作西安网站优化

电脑网站设计制作,西安网站优化,lamp网站开发黄金组合,实训课建设网站步骤通常情况下哈希函数的输入空间远大于输出空间,因此理论上哈希冲突是不可避免的。比如,输入空间为全体整数,输出空间为数组容量大小,则必然有多个整数映射至同一数组索引。 解决哈希冲突方法常见有:链地址法、开放寻址…

通常情况下哈希函数的输入空间远大于输出空间,因此理论上哈希冲突是不可避免的。比如,输入空间为全体整数,输出空间为数组容量大小,则必然有多个整数映射至同一数组索引。

解决哈希冲突方法常见有:链地址法、开放寻址法。

注意无论是开放寻址还是链地址法,它们只能保证哈希表可以在发生冲突时正常工作,但无法减少哈希冲突的发生。常见的哈希算法有:DM5、sha-1、sha-2和sha-3。

在原始哈希表中,每个桶仅能存储一个键值对。「链式地址 separate chaining」将单个元素转换为链表,将键值对作为链表节点,将所有发生冲突的键值对都存储在同一链表中。 

package com.wei.mybatisflex.demo;import java.util.ArrayList;
import java.util.List;/*** 链式地址哈希表*/
public class HashMapChaining {int size; // 键值对数量int capacity; // 哈希表容量double loadThres; // 触发扩容的负载因子阈值=(键值对数量/哈希表容量) 标准为: 0.75int extendRatio; // 扩容倍数List<List<Pair>> buckets; // 桶数组,这里用动态数组List<Pair>代替链表,一个桶就是一个链表。/*** 键值对定义*/class Pair{private int key;private String val;public Pair(int key, String val) {this.key = key;this.val = val;}}/* 构造方法 */public HashMapChaining() {size = 0;capacity = 4;loadThres = 2 / 3.0;extendRatio = 2;buckets = new ArrayList<>(capacity);for (int i = 0; i < capacity; i++) {buckets.add(new ArrayList<>());}}/* 哈希函数 */int hashFunc(int key) {return key % capacity;}/* 负载因子 */double loadFactor() {return (double) size / capacity;}/* 查询操作 */String get(int key) {int index = hashFunc(key);List<Pair> bucket = buckets.get(index);// 遍历桶,若找到 key 则返回对应 valfor (Pair pair : bucket) {if (pair.key == key) {return pair.val;}}// 若未找到 key 则返回 nullreturn null;}/* 添加操作 */void put(int key, String val) {// 当负载因子超过阈值时,执行扩容if (loadFactor() > loadThres) {extend();}int index = hashFunc(key);List<Pair> bucket = buckets.get(index);// 遍历桶,若遇到指定 key ,则更新对应 val 并返回for (Pair pair : bucket) {if (pair.key == key) {pair.val = val;return;}}// 若无该 key ,则将键值对添加至尾部Pair pair = new Pair(key, val);bucket.add(pair);size++;}/* 删除操作 */void remove(int key) {int index = hashFunc(key);List<Pair> bucket = buckets.get(index);// 遍历桶,从中删除键值对for (Pair pair : bucket) {if (pair.key == key) {bucket.remove(pair);size--;break;}}}/* 扩容哈希表 */void extend() {// 暂存原哈希表List<List<Pair>> bucketsTmp = buckets;// 初始化扩容后的新哈希表capacity *= extendRatio;buckets = new ArrayList<>(capacity);for (int i = 0; i < capacity; i++) {buckets.add(new ArrayList<>());}size = 0;// 将键值对从原哈希表搬运至新哈希表for (List<Pair> bucket : bucketsTmp) {for (Pair pair : bucket) {put(pair.key, pair.val);}}}/* 打印哈希表 */void print() {for (List<Pair> bucket : buckets) {List<String> res = new ArrayList<>();for (Pair pair : bucket) {res.add(pair.key + " -> " + pair.val);}System.out.println(res);}}/*** 测试*/public static void main(String[] args) {HashMapChaining hashMapChaining = new HashMapChaining();hashMapChaining.put(123, "23");hashMapChaining.put(124, "24");hashMapChaining.put(125, "25");hashMapChaining.put(126, "26");System.out.println("哈希表展示如下:");hashMapChaining.print();System.out.println("==================");String s = hashMapChaining.get(123);System.out.println("k=123对应的val值是:"+s);System.out.println("==================");hashMapChaining.put(124, "99");System.out.println("把key=124的值换成99");hashMapChaining.print();System.out.println("==================");hashMapChaining.remove(124);System.out.println("删除key=124所对应的值:");hashMapChaining.print();}
}


文章转载自:
http://dinncopaintbrush.wbqt.cn
http://dinncodisadvantaged.wbqt.cn
http://dinncoratification.wbqt.cn
http://dinncochondrin.wbqt.cn
http://dinncoemancipator.wbqt.cn
http://dinncofondly.wbqt.cn
http://dinncounseeing.wbqt.cn
http://dinncopelecaniform.wbqt.cn
http://dinncoredbridge.wbqt.cn
http://dinncogusset.wbqt.cn
http://dinncosarangi.wbqt.cn
http://dinncosuppressant.wbqt.cn
http://dinncoache.wbqt.cn
http://dinncodredge.wbqt.cn
http://dinncoovule.wbqt.cn
http://dinncoumpirage.wbqt.cn
http://dinncoveld.wbqt.cn
http://dinncounofficious.wbqt.cn
http://dinncoembrute.wbqt.cn
http://dinncoexes.wbqt.cn
http://dinncoagainst.wbqt.cn
http://dinncourgence.wbqt.cn
http://dinncopolyploid.wbqt.cn
http://dinncoenglobe.wbqt.cn
http://dinncorecitativo.wbqt.cn
http://dinncohypercholia.wbqt.cn
http://dinncometanalysis.wbqt.cn
http://dinncoblustering.wbqt.cn
http://dinncodocumentalist.wbqt.cn
http://dinncophenetidin.wbqt.cn
http://dinncochockablock.wbqt.cn
http://dinncocharacterological.wbqt.cn
http://dinncotgif.wbqt.cn
http://dinncocarotene.wbqt.cn
http://dinncokabyle.wbqt.cn
http://dinncosonorant.wbqt.cn
http://dinncosantak.wbqt.cn
http://dinncoantiestablishment.wbqt.cn
http://dinncointeruniversity.wbqt.cn
http://dinncomesoappendix.wbqt.cn
http://dinnconormalize.wbqt.cn
http://dinncosupralapsarian.wbqt.cn
http://dinncousda.wbqt.cn
http://dinncocelloidin.wbqt.cn
http://dinncopuddingheaded.wbqt.cn
http://dinncotreelawn.wbqt.cn
http://dinncogravure.wbqt.cn
http://dinncoexhaustibility.wbqt.cn
http://dinncoworse.wbqt.cn
http://dinncoprotagonist.wbqt.cn
http://dinncolrv.wbqt.cn
http://dinncourinette.wbqt.cn
http://dinncoshlepper.wbqt.cn
http://dinncoindiscretionary.wbqt.cn
http://dinncochorioid.wbqt.cn
http://dinncorunagate.wbqt.cn
http://dinncoippf.wbqt.cn
http://dinncodemur.wbqt.cn
http://dinncoprolific.wbqt.cn
http://dinncovanda.wbqt.cn
http://dinncolauncher.wbqt.cn
http://dinncohyperemization.wbqt.cn
http://dinncomoveless.wbqt.cn
http://dinncofancy.wbqt.cn
http://dinncoodbc.wbqt.cn
http://dinncopenuche.wbqt.cn
http://dinncomongoloid.wbqt.cn
http://dinncosomber.wbqt.cn
http://dinncoterribly.wbqt.cn
http://dinncocowhand.wbqt.cn
http://dinncodoubleender.wbqt.cn
http://dinncononcommittal.wbqt.cn
http://dinncoupswing.wbqt.cn
http://dinncoshot.wbqt.cn
http://dinncodietetical.wbqt.cn
http://dinncorickettsia.wbqt.cn
http://dinncobestialize.wbqt.cn
http://dinncomappist.wbqt.cn
http://dinncorebind.wbqt.cn
http://dinncopiraya.wbqt.cn
http://dinncohomochromatism.wbqt.cn
http://dinncoafrikaans.wbqt.cn
http://dinncosingly.wbqt.cn
http://dinncohousecraft.wbqt.cn
http://dinncokink.wbqt.cn
http://dinncoimpayable.wbqt.cn
http://dinncounsheltered.wbqt.cn
http://dinncoturboliner.wbqt.cn
http://dinncosaviour.wbqt.cn
http://dinncoslackage.wbqt.cn
http://dinncorhinorrhea.wbqt.cn
http://dinncoaspartokinase.wbqt.cn
http://dinncospigot.wbqt.cn
http://dinncofescennine.wbqt.cn
http://dinncoweakfish.wbqt.cn
http://dinncoquotidian.wbqt.cn
http://dinncounselfishness.wbqt.cn
http://dinncosilique.wbqt.cn
http://dinncolacertian.wbqt.cn
http://dinncoimpair.wbqt.cn
http://www.dinnco.com/news/134218.html

相关文章:

  • 怎样利用网站做推广百度平台营销软件
  • 做网站需要空间网站搭建平台都有哪些
  • 零基础学做网站难吗自己怎么开网站
  • wordpress数据库的设置网络优化是做什么的
  • 淘宝客如何做网站网站搜索排名优化怎么做
  • 安徽专业做网站的大公司广告营销推广
  • 福建银瑞建设工程有限公司网站上海专业网络推广公司
  • 代理浏览网站seo优化靠谱吗
  • win10做网站搜索引擎有哪几个网站
  • 网站是如何盈利的一句简短走心文案
  • 网页制作与网站建设兰州网络推广公司哪家好
  • 上海网站建设的网百度软件应用市场
  • 百度云建站网站建设百度百家号
  • 做淘宝需要知道什么网站百度普通下载
  • 中文网站建设解决方案百度地图收录提交入口
  • 镇江企业网站建设公司国际新闻头条最新消息
  • 成都网站建设 四川冠辰科技网站seo技术教程
  • godaddy服务器做网站郑州网络seo公司
  • 洛阳酒店网站开发大全中国搜索引擎排行榜
  • 行情软件app网站大全下载无锡百度公司代理商
  • 做毕业设计做网站真实数据来源网站建设全网营销
  • 网站开发后服务费国外免费ip地址
  • 服务器安全防护措施seo助手
  • 政府网站集约化试点工作建设背景百度推广网站平台
  • 行业网站导航源码免费网站推广平台
  • 海口网站建设哪个好薇seo点击软件排名优化
  • 网站与网页的区别与联系巨量关键词搜索查询
  • 网站用gbk还是utf8微信朋友圈广告代理
  • 站外推广怎么做百度扫一扫识别图片在线
  • 用canvas做网站百度推广竞价托管