哈希笔记

哈希值简介是jdk根据对象的地址或者字符串或数字算出来的int类型的数值,用于散列储存这个对象时有据可依。方便正对这个对象使用java中的各种散列数据结构做存储,比如hashmap hashset 不同的对象可能又同样的hashcode的值。

 

哈希表储存原理链表+二叉树哈希桶类的元素超过8个,那么就由链表结构,转成二叉树(红黑树)结构,为了提高查询效率,当树结构的节点数少于6时,冲新转回链表结构

(红黑数时平衡二叉数的一种,平衡二叉树时二叉数的一种)

 

哈希表的扩容机制

            初始化长读为:16

            负载因子为0.75

            阈值:长度*负载因子=16*0.75=12

            扩容系数:2

           大意:创建一个哈希表的初始长度为16,当储存数据大于阈值(16*0.75=12)12时,扩容哈希表的长度16*2=32。

 

哈希表冲突

                数组查询快,增删慢,链表寻址慢增删快。而哈希表介于二者之间,综合性能比较给力。计算方法hashcode%长度,长度越大,取模的可能性越大,离散更大,(哈希冲突的原因)有限的空间长度len,针对整个int范围的hashcode值被取模,怎么都存在哈希冲突。用链表解决哈希冲突,但是会影响查询效率。

 

HashMap和Hashtable的区别:

都实现了map接口,HashMap和Hashtable在线程安全性,同步及速度几乎等价。但是HashMap是非sychronizedde并且可以接收null,Java5提供ConcurrentHashMap它是HashTable的替代,比HashTable扩展性更好。二者的迭代器不同.

 

HashSet和HashMap

是set和map的不同,HashMap比较快,使用唯一键来获取对象。

HashMap用的很多

InnoDB和MyISAM的区别

MyISAM不支持事务处理等高级处理,强调性能,支持表锁,数据索引一起存储

InnoDB支持事务处理等高级处理,支持行锁,数据索引分开存储

 

 

 

 

Ubuntu中使用VSCode配置OpenCV编写孔明棋的步骤大致如下: 1. 安装OpenCV:首先需要在Ubuntu系统中安装OpenCV库。可以通过以下命令在终端中安装OpenCV: ``` sudo apt-get install libopencv-dev ``` 2. 安装VSCode和C/C++扩展:如果尚未安装VSCode,可以访问其官方网站下载安装安装完成后,需要安装C/C++扩展,以便在VSCode中编写和运行C/C++代码。 3. 创建项目文件夹:在合适的位置创建一个新的文件夹作为项目目录。 4. 创建C/C++源文件:在项目目录中创建孔明棋的源代码文件,例如`kongmingqi.cpp`。 5. 配置VSCode的`tasks.json`:需要配置一个编译任务来编译C++代码。右键点击项目目录中的`.vscode`文件夹(如果不存在则创建一个),选择“在终端中打开”,然后输入`code .`打开VSCode创建或修改`tasks.json`文件,加入如下配置: ```json { "version": "2.0.0", "tasks": [ { "label": "C++ build", "type": "shell", "command": "g++", "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}", "-std=c++11", "-I/usr/include/opencv4" ], "group": { "kind": "build", "isDefault": true }, "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "shared", "showReuseMessage": true, "clear": false }, "problemMatcher": [ "$gcc" ] } ] } ``` 6. 配置VSCode的`c_cpp_properties.json`:确保你的C++环境路径配置正确。这可以在VSCode的设置中通过“C/Cpp: Edit Configurations (UI)”命令来完成。 7. 编写孔明棋代码:在`kongmingqi.cpp`中编写孔明棋的逻辑代码。 8. 构建和运行:在VSCode中按下`Ctrl+Shift+B`启动构建任务,然后可以通过在终端中运行编译后的可执行文件来运行孔明棋。 请注意,孔明棋的实现细节取决于具体的游戏规则和你打算如何实现它。你需要编写相应的算法来实现棋盘的布局、棋子的移动规则以及游戏的胜负判断逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值