list!=null和list.size()>0的区别
2016-01-12 19:52
218 查看
在此特别说明一下list!=null和list.size()>0的区别:
1.list==null,意味着list压根没有地址,在堆内就不存在。
2.list.size()=0 意思堆内有list但是还没来得及放元素,其长度随着元素数量变化而变化,暂时为零。
3.list如果为null的话,说明没有进行初始化。这是list调用任何的方法都会抛出空异常。list.size()==0说明list已经被new过,但是里面没有值。
4.区别:
①有没有瓶子 list != null
②瓶子里有没有水 list.isEmpty()
判断的时候一定要注意先后顺序
如果没有瓶子都没有,直接判断有没有水,是会报nullException的
③另外:
list.add(null)
会造成list.isEmpty() 为 false, list.size() 为1
所以代码里要避免list.add(null)的陷阱
④比较形象一个比喻:
举个形象的例子,我有一个空着的水杯(list),而你没有,那你是null,我的size为0。你想装水需要去买个水杯(new ArrayList();),我就可以直接装水(list.add(水))。你要是没有杯子直接倒水,水就流出去啦(空指针异常)。所以用做判断的时候经常连用 list!=null && list.size()!=0 。
1.list==null,意味着list压根没有地址,在堆内就不存在。
2.list.size()=0 意思堆内有list但是还没来得及放元素,其长度随着元素数量变化而变化,暂时为零。
3.list如果为null的话,说明没有进行初始化。这是list调用任何的方法都会抛出空异常。list.size()==0说明list已经被new过,但是里面没有值。
4.区别:
①有没有瓶子 list != null
②瓶子里有没有水 list.isEmpty()
判断的时候一定要注意先后顺序
如果没有瓶子都没有,直接判断有没有水,是会报nullException的
③另外:
list.add(null)
会造成list.isEmpty() 为 false, list.size() 为1
所以代码里要避免list.add(null)的陷阱
④比较形象一个比喻:
举个形象的例子,我有一个空着的水杯(list),而你没有,那你是null,我的size为0。你想装水需要去买个水杯(new ArrayList();),我就可以直接装水(list.add(水))。你要是没有杯子直接倒水,水就流出去啦(空指针异常)。所以用做判断的时候经常连用 list!=null && list.size()!=0 。
相关文章推荐
- 文件状态信息
- 关于动态布局的时候调整布局的错误(一)
- android的adb命令
- SVN服务器搭建和使用(三)
- onEnter, onExit
- 游戏客户器端通信框架(C++与Socket)
- 易忽略
- 笨办法学Python学习笔记 练习19
- Android studio 上 EventBus的初步使用
- 自定义线性菜单 LinearMenu 仿触手tv菜单效果
- linuxmint 执行 qmake 报错
- SVN服务器搭建和使用(二)
- 插入排序
- js初学笔记第一课
- Unity3D角色换装及换装编辑器
- 刚体的平面运动
- [Redux] React Todo List Example (Toggling a Todo)
- const,static,extern简介(重要)
- 数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案
- POJ1469COURSES