社区
Java SE
帖子详情
JAVA 的LIST使用过程中NULL和SIZE=0谁最优
gannian
2009-12-17 11:59:06
我们在编码过程中对于一个空表往往可以作size=0的一个对像或NULL对像来处理.
而NULL对像很容易导致后面在使用过程中报空异常..有时候查错起来很困难.
所以我个人更倾向于使用size=0为对像..不知道二者在性能方面的差异如何...高手指点.
...全文
375
9
打赏
收藏
JAVA 的LIST使用过程中NULL和SIZE=0谁最优
我们在编码过程中对于一个空表往往可以作size=0的一个对像或NULL对像来处理. 而NULL对像很容易导致后面在使用过程中报空异常..有时候查错起来很困难. 所以我个人更倾向于使用size=0为对像..不知道二者在性能方面的差异如何...高手指点.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qqzhuyuehe
2010-03-15
打赏
举报
回复
[Quote=引用 1 楼 hzhxxx 的回复:]
目的根本不一样
null 是判断对象是否 new 成功
size 是对new 成功的对象实例,求得里面的元素个数
[/Quote]
说得好,简单明了,一针见血!
qin59218
2009-12-18
打赏
举报
回复
都可以,但写接口说明时,一定要说明没有记录时要返回是Null,还是size=0
gannian
2009-12-18
打赏
举报
回复
看样子是我没说清楚啦。。。。举个例子来说吧:
初始化:List list = new ArrayList();
在做一个数据查询里根据需要把结果作处理放入LIST中,但实际上没有需要的结果放入LIST中。
那么此时我们是return null还是return list 呢???
此时如果你return null那么你后面的代码在实际应用过程中极容易出现空值异常(项目已发布可能初期你根本考虑不到会有查不到数据这种情况),特别是调用复杂时查错很麻烦的(有一定工作经验的人应该深有体会).
而我最近在看一些代码时,发现这样的情况它都是作return null处理,难道只是因为个人习惯问题吗?
zhanghuaigong
2009-12-17
打赏
举报
回复
同意二楼的。
jpg1023_2009
2009-12-17
打赏
举报
回复
if(list==null || list.isEmpty()){
return;
}
jpg1023_2009
2009-12-17
打赏
举报
回复
if(list==null || list.isEmpty){
return;
}
myjavaz
2009-12-17
打赏
举报
回复
帮顶
nj_dobetter
2009-12-17
打赏
举报
回复
对象需要时再new, 以提高效率, 所以这样判断
if(list==null || list.size() < 1){
return; //Do nothing, return directly
}
hzhxxx
2009-12-17
打赏
举报
回复
目的根本不一样
null 是判断对象是否 new 成功
size 是对new 成功的对象实例,求得里面的元素个数
java
if(
list
!=
null
){ for(int i=0;i<
list
.
size
();i++){}}是不是可以改成for(int i=0;
list
!=
null
&&i<
list
.
size
();i
本文探讨了
Java
中
对
List
进行遍历时的多种写法,重点分析了在循环条件
中
加入
null
判断的必要性,并对比了传统for循环、增强for循环、Optional及工具类等方案的优劣。强调应优先采用防御性编程并返回空集合而非
null
,以提升代码可读性和健壮性。
Java
List
获取最后一个元素:安全、性能与最佳实践全解析
本文深入解析
Java
中
安全、高效获取
List
最后一个元素的多种方案,涵盖经典索引法、
Java
21+ getFirst/getLast方法及Stream API的适用边界;重点强调空安全处理、不同
List
实现(Array
List
/Linked
List
)的性能差异、并发场景下的幽灵元素问题,以及工具类封装与统一空值策略(Optional)等工程化实践。
Java
List
实现类性能优化与实战技巧
本文深入解析Array
List
、Linked
List
和Vector的核心差异与适用场景,涵盖内存优化(如trimTo
Size
、原始类型集合)、并发安全策略(CopyOnWriteArray
List
、ConcurrentLinkedQueue等)、ConcurrentModificationException解决方案及OOM问题分析。结合电商商品列表与日志系统实战案例,说明如何基于操作特征(随机访问/插入删除)和规模选择
最优
List
实现,并引入
Java
9+不可变工厂方法及Guava/FastUtil等第三方库选型建议。
Java
List
完整知识体系(
Java
版,面试全覆盖)
本文系统梳理
Java
List
体系,涵盖顶层接口架构(Iterable→Collection→
List
)、三大核心实现类(Array
List
、Linked
List
、CopyOnWriteArray
List
)的底层原理、时间复杂度、线程安全机制及适用场景;深入解析 Array
List
动态扩容(1.5倍)、懒加载、transient 序列化优化、modCount 与 CME 异常机制;对比 Linked
List
双向链表结构与遍历陷阱;剖析不可变
List
(Arrays.as
List
、
List
.of、Immutable
List
)的本质差异;并覆盖遍历方式选型、sub
List
坑点、并发工具类及工程最佳实践。
Java
List
排序实战:原理、性能与避坑指南
本文深入剖析
Java
List
排序的底层机制,重点解析Timsort稳定性优势及其在部分有序数据
中
的性能表现;对比Arrays.sort、Collections.sort与
List
.sort三套API的实现差异与适用场景;详解Comparator设计陷阱,包括Lambda性能损耗、链式比较开销、
中
文拼音排序(Collator)、BigDecimal精度处理及时间字段截断等金融级要求;覆盖百万级订单压测调优、线上排序异常三步定位法、生产兜底校验机制,并延伸至分治并行排序、JPA数据库排序协同及Micrometer性能监控实践。
Java SE
62,621
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章