算法学习笔记:哈希表与JAVA String操作
版权申诉
74 浏览量
更新于2024-08-25
收藏 185KB PDF 举报
"这篇学习笔记主要涵盖了算法学习的基础知识,特别是关于哈希表(unordered_map)的使用以及Java中String类的相关操作。作者在2021年11月21日开始使用‘东哥的算法小抄’作为学习资料,并记录了读书笔记。笔记详细列举了哈希表和Java String类的一些关键方法和示例代码,旨在帮助读者理解和应用这些概念。"
**哈希表(unordered_map)**
哈希表是一种高效的数据结构,它提供了快速的插入、删除和查找操作。在C++中,`unordered_map`是STL(标准模板库)的一部分,用于实现关联数组,即通过键来查找对应的值。
1. **size_type count(const key_type& key)**
这个方法用于检查给定的键`key`在哈希表中是否存在。如果存在,返回1;如果不存在,返回0。这提供了一种快速的方式判断键是否已被存储。
2. **size_type erase(const key_type& key)**
使用键`key`删除哈希表中的键值对。如果成功删除,返回1;如果键不存在,返回0。注意,`erase`操作会彻底移除键值对,而不仅仅是设置其值为0或空。
3. **常用代码示例**
示例代码展示了如何初始化一个`unordered_map`,并遍历其中的键值对。同时,指出使用方括号`[]`访问键值对时,如果键不存在,会自动创建键并为其分配默认值类型的值。
**Java String**
在Java中,`String`类是不可变的,这意味着一旦创建,就不能更改它的内容。因此,对于频繁的字符串操作,通常需要使用其他方法或类。
1. **toCharArray()**
这个方法将`String`对象转换为`char`数组,允许对单个字符进行操作。在操作完成后,可以通过构造函数将数组转换回`String`类型。
2. **StringBuilder**
当需要拼接多个字符串时,使用`StringBuilder`类比直接使用`+`操作符更有效率。`StringBuilder`提供了`append`方法,可以方便地添加各种类型的数据(如字符、字符串、数字等)到构建器中。
```java
StringBuilder sBuilder = new StringBuilder();
for (char c = 'a'; c <= 'f'; c++) {
sBuilder.append(c);
}
sBuilder.append('g').append("hij").append(123);
String reStr = sBuilder.toString(); // 将StringBuilder转换回String
```
在这个示例中,`StringBuilder`被用于动态构建字符串,避免了多次创建新的`String`对象,从而提高了性能。
这篇笔记是学习算法和数据结构的一个良好起点,特别是对于理解和运用哈希表以及处理Java字符串操作的初学者来说。通过掌握这些基础知识,可以为解决更复杂的编程问题打下坚实基础。
一诺网络技术
- 粉丝: 0
- 资源: 2万+
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器