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

发布时间:2026/10/6 5:16:21
【LeeCode碎碎念】从「两数之和」理解 Integer 与数组返回值 写 Java 的「两数之和」时我产生了如下两个问题1. 为什么用 Integer不能用 intint是基本类型Integer是它对应的包装类属于引用类型。Java 泛型的类型参数必须是引用类型所以MapInteger,IntegerhtnewHashMap();// 正确// Mapint, int ht new HashMap(); // 编译错误操作哈希表时仍可以传入intJava 会进行自动装箱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

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询