算法学习笔记:哈希表与JAVA String操作
版权申诉
94 浏览量
更新于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字符串操作的初学者来说。通过掌握这些基础知识,可以为解决更复杂的编程问题打下坚实基础。
2021-12-03 上传
2021-12-01 上传
2018-02-04 上传
350 浏览量
2021-10-05 上传
一诺网络技术
- 粉丝: 0
- 资源: 2万+
最新资源
- AA4MM开源软件:多建模与模拟耦合工具介绍
- Swagger实时生成器的探索与应用
- Swagger UI:Trunkit API 文档生成与交互指南
- 粉红色留言表单网页模板,简洁美观的HTML模板下载
- OWIN中间件集成BioID OAuth 2.0客户端指南
- 响应式黑色博客CSS模板及前端源码介绍
- Eclipse下使用AVR Dragon调试Arduino Uno ATmega328P项目
- UrlPerf-开源:简明性能测试器
- ConEmuPack 190623:Windows下的Linux Terminator式分屏工具
- 安卓系统工具:易语言开发的卸载预装软件工具更新
- Node.js 示例库:概念证明、测试与演示
- Wi-Fi红外发射器:NodeMCU版Alexa控制与实时反馈
- 易语言实现高效大文件字符串替换方法
- MATLAB光学仿真分析:波的干涉现象深入研究
- stdError中间件:简化服务器错误处理的工具
- Ruby环境下的Dynamiq客户端使用指南