news 2026/10/6 5:16:19

【LeeCode碎碎念】从「两数之和」理解 Integer 与数组返回值

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【LeeCode碎碎念】从「两数之和」理解 Integer 与数组返回值

写 Java 的「两数之和」时,我产生了如下两个问题:

1. 为什么用 Integer,不能用 int?

int是基本类型,Integer是它对应的包装类,属于引用类型。Java 泛型的类型参数必须是引用类型,所以:

Map<Integer,Integer>ht=newHashMap<>();// 正确// Map<int, int> ht = new HashMap<>(); // 编译错误

操作哈希表时仍可以传入int,Java 会进行自动装箱:

ht.put(target-nums[i],i);// 两个 int 自动转换为 Integer

取出的Integer放入int[]时,会进行自动拆箱:

returnnewint[]{i,ht.get(nums[i])};

需要注意:对 null 拆箱会抛出 NullPointerException。Map.get()在键不存在时会返回null,因此取值后要确认非空,再当作int使用。

2. return null 和 return new int[0] 有什么区别?

两种写法都能编译,因为int[] 本身是引用类型,即使其中的元素是基本类型int。

写法含义读取.length遍历访问[0]
return null;没有数组对象空指针异常空指针异常空指针异常
return new int[0];存在一个长度为 0 的数组得到 0正常,执行 0 次数组越界异常

返回null时,调用方需要先判断是否为空;返回空数组时,可以直接读取长度或遍历,但仍不能访问其中的元素。

new int[0]表示空数组,不是包含一个 0 的数组;后者应写为new int[]{0}。

3. 简单总结

  • 如果“无解”是正常情况,返回空数组通常更方便;也可以约定返回null,但调用方必须检查。若按约定必须有解,无解时也可以抛出异常。

  • 哈希表解法的平均时间复杂度为 O(n),空间复杂度为 O(n)。

  • 对应知识点:Java泛型,自动拆装箱(Boxing & Unboxing)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/6 5:16:00

从零实现魔术公式轮胎模型:Matlab拟合与车辆动力学仿真应用

做车辆动力学仿真和底盘控制开发的朋友&#xff0c;对"魔术公式轮胎模型"这个词一定不陌生。这套由荷兰学者Pacejka提出的半经验轮胎模型&#xff0c;核心是一组三角函数&#xff0c;用几个参数就把轮胎的纵向力、侧向力和回正力矩表达成滑移率、侧偏角和垂向载荷的函…

作者头像 李华
网站建设 2026/10/6 5:16:00

用LM324搭频率电压转换器:Multisim仿真保姆级教程

又是一年课程设计轰炸期&#xff0c;频率电压转换&#xff08;F/V&#xff09;这个题目十个人里有八个打开Multisim第一件事就是拖一个LM331出来。然后&#xff0c;经典剧情就开始了&#xff1a;模型不收敛、输出波形上全是毛刺、频率一上去仿真就卡死&#xff0c;问了一圈学长…

作者头像 李华
网站建设 2026/10/6 5:15:59

SpringBoot+Vue3物流信息管理系统开发实战与设计要点

做物流信息系统的时候&#xff0c;很多团队一上来就堆功能&#xff0c;结果等到数据量上来、业务逻辑绕进去以后&#xff0c;改得想哭。我在实际开发中就踩过不少这样的坑&#xff0c;所以这次想把这个项目的完整思路和实现过程拆开聊一聊。这套系统用的是Java生态里非常经典的…

作者头像 李华
网站建设 2026/10/6 5:15:54

MBA论文AI工具实测:开题、文献综述、毕业论文三阶段效率外挂盘点

MBA论文这关&#xff0c;谁过谁知道。白天上班晚上码字&#xff0c;开题报告被导师打回来三次&#xff0c;文献综述堆了80篇PDF不知道从哪看起&#xff0c;毕业论文写到后半程连自己前面章节写了什么都忘了——这种状态我见过太多MBA同学。但也正因为这样&#xff0c;近几年AI论…

作者头像 李华
网站建设 2026/10/6 5:15:26

SpringBoot+MySQL8+Flowable6.8.1工作流引擎落地指南

简介&#xff1a;一套面向Java开发者与BPM初学者的Spring Boot 2.6.13MySQL 8Flowable 6.8.1整合资源包&#xff0c;重点解决工作流开发环境搭建繁琐、依赖版本匹配难的问题。包内自带MySQL 8安装程序&#xff0c;降低部署门槛&#xff0c;适合需要快速体验流程引擎、搭建可扩展…

作者头像 李华
网站建设 2026/10/6 5:14:52

AI审校答辩材料实战:TextIn xParse + WorkBuddy + Qwen + OpenVINO

1. 答辩材料审校这件事&#xff0c;为什么值得用 AI 重做一遍每年到了答辩季&#xff0c;我身边总有一批人陷入同一种循环&#xff1a;把材料写完之后&#xff0c;自己读三遍觉得没问题&#xff0c;交给导师看&#xff0c;导师回一句“论证不够扎实”&#xff0c;然后继续改&am…

作者头像 李华