开发者

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

目录
  • 1. 判空
    • 1.1 判断字符串是否为空
    • 1.2 判断List集合是否为空
    • 1.3 判断Map集合是否为空
  • 2. 判等
    • 2.1 判断两个字符串是否相等
    • 2.2 判断两个List集合是否相等
    • 2.3 判断两个List集合是否相等

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) {
       javascript     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 Empt编程客栈yTest {
    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 cpythonom.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;http://www.devze.com
 
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判空与判等内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新开发

开发排行榜