Java HashMap详解与泛型概念解析
需积分: 43 47 浏览量
更新于2024-07-13
收藏 4.77MB PPT 举报
本段内容主要讨论了Java中的HashMap数据结构的常规使用方法以及Java泛型的一些特性。
HashMap是Java集合框架中一个非常重要的类,它实现了Map接口,用于存储键值对。在给定的示例中,我们创建了一个HashMap实例,并通过put方法插入键值对。HashMap允许我们通过键来查找对应的值,如果键已经存在,那么原有的值会被新值替换,如`map.put("key1", "value4")`就替换了"key1"之前的"value1"。当我们尝试获取不存在的键时,如`map.get("key8")`,HashMap会返回null。
在Java泛型的使用上,泛型提供了编译时的类型安全检查。例如,`Box<Dog> dogBox = new Box<>();` 创建了一个Box的实例,其内部只能存储Dog类型的对象。`dogBox.setT(new Dog("狗狗"))`会在编译时期进行类型检查,确保添加的对象是Dog或其子类。然而,由于Java泛型的类型擦除,`Box<Animal> animalBox = new Box<>();`虽然看起来与`dogBox`不同,但在运行时,它们都是Box类型,没有类型参数信息。这意味着我们可以将Animal类型的对象放入dogBox,如`animalBox.setT(new Animal("lisi"))`,尽管这在逻辑上可能不正确。在运行时,`dogBox`和`animalBox`都是Box实例,类型参数被擦除为Object,因此可以将Animal对象放入原本应该存放Dog的dogBox中。
此外,代码还展示了如何使用泛型方法和数组。`Test5<T>`类中有一个`setO`方法,用于动态扩展数组并存储T类型的对象。这里展示了Java数组和泛型结合时,数组的类型是在运行时确定的,而泛型则在编译时起作用。
最后,示例提到了如何使用List、Set和Comparator进行排序。当使用List(如ArrayList)时,可以通过提供Comparator的实现类对象来定制排序规则,例如按照中文拼音排序。Set(如HashSet)是无序的,但可以通过转换为SortedSet(如TreeSet)并提供Comparator来实现特定的排序。
总结来说,这段内容涵盖了HashMap的基本操作、Java泛型的类型安全和类型擦除、以及如何在集合中进行自定义排序。这些知识点在日常Java编程中非常常见且重要。
2022-05-09 上传
2021-07-05 上传
2021-02-17 上传
2019-07-09 上传
2021-01-21 上传
2020-09-04 上传
2021-07-15 上传
三里屯一级杠精
- 粉丝: 35
- 资源: 2万+
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析