(原)list中null的谨慎使用
今天在刷算法题时,新建了ArrayList变量,发现ArrayList与null结合起来使用时经常出错。
请查看如下几种例子,
1、new一个ArrayList<>类型的数据,
import java.util.ArrayList; public class Test
{ @SuppressWarnings("unused")
public static void main(String[] args)
{
ArrayList<Integer> al=new ArrayList<Integer>();
//al.add(null);
//al=null;
if (al==null)
{
System.out.println("al==null");
} if (al.isEmpty())
{
System.out.println("al is Empty");
} System.out.println("al.size(): "+al.size()); System.out.println("al.get(0): "+al.get(0));
al.add(5);
al.add(4);
}
}
2、将ArrayList<>变量置为null
import java.util.ArrayList; public class Test
{ @SuppressWarnings("unused")
public static void main(String[] args)
{
ArrayList<Integer> al=null;
//al.add(null);
//al=null;
if (al==null)
{
System.out.println("al==null");
} if (al.isEmpty())
{
System.out.println("al is Empty");
} System.out.println("al.size(): "+al.size()); System.out.println("al.get(0): "+al.get(0));
al.add(5);
al.add(4);
}
}
通过这两个例子,可以看出list==null和用new新建出的arrayList<>是不同的。以至于调用list.size()也会有所不同。
在此加深一下null的认识:
null是没有地址的;
B b=new B();
这是b指向B对象。
b=null;
b指向空。
在此说明一下list!=null和list.size()的区别:
1、list==null,意味着list压根没有地址,在堆内就不存在,说明其没有进行初始化,这时llist调用任何方法都会抛出空异常。
2、list.size()=0,意味着堆内有list,但是还没来得及放元素,其长度随着元素数量变化而变化,暂时为零。
(原)list中null的谨慎使用的更多相关文章
- [原]MFC中DIALOG(对话框)程序响应加速键(快捷键)
[原]MFC中DIALOG(对话框)程序响应加速键(快捷键) 2014-8-6阅读266 评论0 新建一个对话框程序,项目名为Test,删除默认确定,取消和静态文本框控件.添加一个按钮,Caption ...
- 神奇的 SQL 之层级 → 为什么 GROUP BY 之后不能直接引用原表中的列
前言 开心一刻 感觉不妙呀,弟弟舔它! 不该舔的,舔到怀疑人生了...... GROUP BY 后 SELECT 列的限制 标准 SQL 规定,在对表进行聚合查询的时候,只能在 SELECT 子句中写 ...
- [转]神奇的 SQL 之层级 → 为什么 GROUP BY 之后不能直接引用原表中的列
原文:https://www.cnblogs.com/youzhibing/p/11516154.html 这篇文章,对group by的讲解不错 -------------------------- ...
- SQLSERVER中NULL位图的作用
SQLSERVER中NULL位图的作用 首先感谢宋沄剑提供的文章和sqlskill网站:www.sqlskills.com,看下面文章之前请先看一下下面两篇文章 SQL Server误区30日谈-Da ...
- Objective-C 中 NULL、nil、Nil、NSNull 的定义及不同
本文由我们团队的 康祖彬 童鞋撰写,这是他的个人主页:https://kangzubin.cn. 理解"不存在"的概念不仅仅是一个哲学的问题,也是一个实际的问题.我们是有形宇宙的居 ...
- sql server中NULL导入decimal字段时报错
sql server中NULL导入decimal字段时报错 在导入CSV文件时,如果decimal字段为null值,导致文本文件入库时失败. 错误现象 构造例子 新建一张表,包含decimal字段. ...
- mysql中NULL和null的区别
接触php的web开发一段时间了,在进行数据库操作的时候经常会遇到一个问题,使得同一字段在页面显示时有3种类型NULL,null以及数字,当时的解决办法是将这一字段定义为varchar类型,在插入数据 ...
- JS中NULL和undifined区别及NULL的作用
1.博客地址:http://www.cnblogs.com/eastday/archive/2010/03/03/1677324.html 2.参考地址2:https://www.zhihu.com/ ...
- sql中NULL的问题
sql中NULL的问题 今天一不小心在sql中写出以下脚本 select defaultPositionId from TableName where UserId=1100528 and def ...
随机推荐
- lecture15-自动编码器、语义哈希、图像检索
Hinton第15课,本节有课外读物<Semantic Hashing>和<Using Very Deep Autoencoders for Content-Based Image ...
- 这些javascript面试题,你做对了几道?
1.---------------------------------------------------- var fun = function(){ this.name = 'peter'; re ...
- Code Review 五问五答
Code Review 是什么? Code Review即代码审查,程序猿相互审核对方的代码. Code Review能获得什么好处? 提高代码可维护性 你写的代码不再只有编译器看了,你得写出审核人能 ...
- MATLAB中白噪声的WGN和AWGN函数的使用
MATLAB中白噪声的WGN和AWGN函数的使用如下: MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN.WGN用于产生高斯白噪声,AWGN则用于在某一 信号 ...
- MVC————添加视图时没有模型可用
我们有时想创建强类型视图,却发现下拉列表里面没有东西,这时不要慌,这是因为你没有编译造成的,编译一下就好了~
- C 语言学习的第 05 课:了解课程配套的平台
在此之前,已经同授课老师沟通,确认课程的配套平台是Coding.net.对于大多数(甚至是全部)同学来说,这个平台应该是极其陌生的.不过不用担心,且还是娓娓道来. 定义:Coding.net是一个集代 ...
- 《Spring 3.0就这么简单》 读书笔记
第一章:快速入门 开发流程: 1.创建库表 依赖jar包配置 2.事务:事务是恢复和并发控制的基本单位. 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolatio ...
- SpringMVC使用@PathVariable,@RequestBody,@ResponseBody,@RequestParam,@InitBinder
@Pathvariable public ResponseEntity<String> ordersBack( @PathVariable String reqKey, ...
- Android应用崩溃后异常捕获并重启并写入日志
在Android开发时,有时会因为一些异常导致应用报错,偶尔会因为错误 而崩溃,导致用户体验下降,为了解决这问题,我们就要对这样的异常处理: 代码如下: CrashHandler.java impor ...
- 【BZOJ 1857】【SCOI 2010】传送带
三分套三分,虽然简单,但是也得掌握,,, 时间复杂度$O(log_{1.5}^2 n)$ 一开始WA好几次发现是快速读入里没有return,这样也能过样例?_(:3J∠)_ #include<c ...