java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java判空与判等

Java中常用判空与判等方法详解

作者:会说法语的猪

java中感觉判空的一些方法太多了,感觉有点儿乱糟糟的,所以这篇文中就为大家简单总结一下在项目中常用的一些方法吧,希望对大家有所帮助

java中感觉判空的一些方法太多了,感觉有点儿乱糟糟的,所以这篇就简单总结一下我在项目中常用的一些方法吧,并不全哈,只是自己常用的,平时也够用 

1. 判空

1.1 判断字符串是否为空

下面是判断字符串是否为空常用的我常用的四种方式:

package com.wft.test;
 
 
import org.apache.commons.lang3.StringUtils;
 
public class EmptyTest {
    public static void main(String[] args) {
        // 1. 判断字符串是否为空
        String str = null;
        // 方式1 
        if(StringUtils.isEmpty(str)) { // StringUtils.isNotEmpty  判断不为空
            System.out.println("为空1");
        }
        // 方式2
        if(str == null || str.isEmpty()) {
            System.out.println("为空2");
        }
        // 方式3
        if(str == null || "".equals(str)) {  // 直接使用str.equals("")如果str是null会导致NullPointerException
            System.out.println("为空3");
        }
        // 方式4
        if(str == null || str.length() == 0) {
            System.out.println("为空4");
        }
    }
}

1.2 判断List集合是否为空

package com.wft.test;
 
 
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
 
public class EmptyTest {
    public static void main(String[] args) {
        List<Object> list = new ArrayList<>();
        // 方式1:
        if(Objects.isNull(list) || list.isEmpty()) {
            System.out.println("为空1");
        }
        // 方式2:
        if(Objects.isNull(list) || list.size() == 0) {
            System.out.println("为空2");
        }
    }
}

1.3 判断Map集合是否为空

package com.wft.test;
 
 
import java.util.HashMap;
import java.util.Map;
 
public class EmptyTest {
    public static void main(String[] args) {
        Map map = new HashMap();
        if(map == null || map.isEmpty()) {
            System.out.println("为空");
        }
    }
}

2. 判等

1.双等于(==)

先说下双等于,其实开发中比较少用==。==操作符用于比较两个变量的值是否相等。不过,它的行为取决于被比较的变量类型

2.基本数据类型

当==用于比较如int, float, charr等基本数据类型的变量时,它比较的是这些变量的实际值。例如,int a = 5; int b = 5;  则 a == b 返回 true,因为它们的值都是5

3.引用类型

当==用于比较引用类型(如类、接口、数组等)时,它比较的是两个引用是否指向内存中的同一个对象地址,而不是比较对象的内容或值。例如,如果你有两个分别创建的String对象,即使它们包含相同的字符序列,使用==比较它们也会返回false,除非这两个引用实际上指向的是同一个对象实例。

如果你想要比较两个对象的内容是否相等,应该使用.equals()方法。比如,对于String类,"hello".equals("hello") 将返回 true,因为它比较的是字符串的内容而非它们的内存地址。

2.1 判断两个字符串是否相等

package com.wft.test;
 
import java.util.Objects;
 
public class empty {
    public static void main(String[] args) {
        String str1 = "wft";
        String str2 = "wft";
        /**
         * 方式1
         * 注意:如果其中一个字符串可能为 null,直接调用 equals() 可能会导致 NullPointerException。为了避免这种情况,将 equals() 调用放在非 null 的对象上。或者采用方式2
         */
        if(str1.equals(str2)) {
            System.out.println("相等");
        }
        /**
         * 方式2
         */
        if(Objects.equals(str1, str2)) {
            System.out.println("相等");
        }
    }
}

2.2 判断两个List集合是否相等

package com.wft.test;
 
 
import java.util.Arrays;
import java.util.List;
 
public class EmptyTest {
    public static void main(String[] args) {
        List<String> list1 = Arrays.asList("a", "b", "c");
        List<String> list2 = Arrays.asList("a", "b", "c");
 
        if(list1.equals(list2)) {  // 注意空指针的情况
            System.out.println("相等");
        }
    }
}

2.3 判断两个List集合是否相等

package com.wft.test;
 
import java.util.HashMap;
import java.util.Map;
 
public class EmptyTest {
    public static void main(String[] args) {
        Map<String, String> map1 = new HashMap<>();
        map1.put("key1", "value1");
        map1.put("key2", "value2");
 
        Map<String, String> map2 = new HashMap<>();
        map2.put("key2", "value2");
        map2.put("key1", "value1");
 
        if(map1.equals(map2)) {
            System.out.println("相等");
        }
    }
}

到此这篇关于Java中常用判空与判等方法详解的文章就介绍到这了,更多相关Java判空与判等内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文