如何判断数组或集合是否为空,空和null有什么区别

判断是否为空

数组

1、判断数组为null arr引用

数组为null:是创建了数组的引用,栈中arr的内存空间没有存放任何地址。

        String[] arr=null;
        if(arr==null){
            //语句;
        }

2、判断数组为空 arr=[]

数组为空:数组是空其实就是数组的长度为0,数组是真正的对象,只是对象中没有元素,也就是说里面没有内容。

        String[] arr={};
        if(arr.length==0){
            //语句;
        }

3、判断数组的每个元素都为空 arr=[null,null,null]

        String[] arr = new String[3];
        int index = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == null) {
                index++;
            }
        }
        if (index == arr.length) {
            //语句;
        }

如何理解这三种情况呢?

数组是数据的集合,我们可以把数组看做一个苹果箱(int类型的数组就是int箱,String类型的数组就是字符串箱),我们在声明数组的时候就已经规定了数组(箱子)里存放的类型(苹果)。

第一种情况是要判断这个苹果箱到底有没有、存不存在;第二种情况是判断在苹果箱存在的情况下,箱子里面有没有放苹果的位置;第三种情况是判断在苹果箱存在并且箱子里有放苹果的位置的情况下,这几个位置上到底有没有苹果,如果没有苹果,就是null,用代码表示就是:苹果[ ] arr=[ 红富士苹果,青苹果,null ]。

集合同理数组

1、判断集合为null

        if(null == list){
       //语句;
        }

2、判断集合为空

        if(list.size() ==0 ){
       //语句;
        }

list.isEmpty() 和 list.size()==0没有区别。isEmpty()判断有没有元素,而size()返回有几个元素

3、判断集合的所有元素为空

        ArrayList<ArrayList> lineList=new ArrayList<ArrayList>();
        int index = 0;
        for (int i = 0; i < arr.length; i++) {
            if (lineList[i] == null) {
                index++;
            }
        }
        if (index == arr.length) {
            //语句;
        }
posted @ 2021-01-22 13:19  亚州Asu  阅读(10884)  评论(0编辑  收藏  举报