黑马程序员技术交流社区

标题: list==null 与list.size() == 0 有什么区别? [打印本页]

作者: 任文杰    时间: 2012-4-22 18:59
标题: list==null 与list.size() == 0 有什么区别?
List<String> list = new ArrayList<String>();
为了避免出现数组越界或空指针异常我该如何进行代码编写?
作者: 武庆东    时间: 2012-4-22 19:14
list==null和list.size()==0区别:
list集合为空,list.size()==0指list集合占有的空间为零即list集合为0一个意思!

作者: 真真姐    时间: 2012-4-22 19:15
本帖最后由 杨国祯 于 2012-4-22 19:21 编辑

你说的问题应该是判断的时候
if (list!=null &&list.size()>0)
                  {
                     System.out.println(list!=null);
                     System.out.println(list.size()>0);
}
自然两个是不一样的,list!=null是对象是是否存在,list.size()>0是存在的时候里面的内容是不是空
作者: 蒋亮    时间: 2012-4-22 19:22
list=null是指没有创建实例对象,只是声明了一个引用变量,所以调用它的方法会抛出空指针异常。
list.size()=0是指集合中没有内容。
避免数组越界,操作数组的时候,下标别超过数组的最大下标就行了。
避免空指针异常,保证在对实例对象操作之前,先进行new操作就是了。
作者: 陈坚    时间: 2012-4-22 19:32
List<String> list=null是指没有创建实例对象,只是声明了一个变量,在内存中没有分配空间,这时的list==null
list.size()==0:此时的list已经在内存中分配了存储地址,而list集合零
作者: 李蛟龙    时间: 2012-4-22 20:14
list.size()=0是指集合中没有内容,但对象已创建。
则内存中会在栈区创建一个引用size,指向常量池中的整数0,

list=null:给一个引用变量list赋值null,
则会在栈区创建一个引用list,不指向任何地址,表示还没new出对象
作者: 成吉思汗    时间: 2012-4-22 21:32
list==null和list.size()==0通常在我们遍历集合时使用。
list==null相当于只声明了一个集合对象,而没有实例化该对象。
list.size()相当于实例了一个集合对象,但是集合中没有存储数据。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2