欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中常用判空與判等方法詳解

 更新時(shí)間:2025年03月04日 08:56:55   作者:會(huì)說法語的豬  
java中感覺判空的一些方法太多了,感覺有點(diǎn)兒亂糟糟的,所以這篇文中就為大家簡單總結(jié)一下在項(xiàng)目中常用的一些方法吧,希望對大家有所幫助

java中感覺判空的一些方法太多了,感覺有點(diǎn)兒亂糟糟的,所以這篇就簡單總結(jié)一下我在項(xiàng)目中常用的一些方法吧,并不全哈,只是自己常用的,平時(shí)也夠用 

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會(huì)導(dǎo)致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.雙等于(==)

先說下雙等于,其實(shí)開發(fā)中比較少用==。==操作符用于比較兩個(gè)變量的值是否相等。不過,它的行為取決于被比較的變量類型

2.基本數(shù)據(jù)類型

當(dāng)==用于比較如int, float, charr等基本數(shù)據(jù)類型的變量時(shí),它比較的是這些變量的實(shí)際值。例如,int a = 5; int b = 5;  則 a == b 返回 true,因?yàn)樗鼈兊闹刀际?

3.引用類型

當(dāng)==用于比較引用類型(如類、接口、數(shù)組等)時(shí),它比較的是兩個(gè)引用是否指向內(nèi)存中的同一個(gè)對象地址,而不是比較對象的內(nèi)容或值。例如,如果你有兩個(gè)分別創(chuàng)建的String對象,即使它們包含相同的字符序列,使用==比較它們也會(huì)返回false,除非這兩個(gè)引用實(shí)際上指向的是同一個(gè)對象實(shí)例。

如果你想要比較兩個(gè)對象的內(nèi)容是否相等,應(yīng)該使用.equals()方法。比如,對于String類,"hello".equals("hello") 將返回 true,因?yàn)樗容^的是字符串的內(nèi)容而非它們的內(nèi)存地址。

2.1 判斷兩個(gè)字符串是否相等

package com.wft.test;
 
import java.util.Objects;
 
public class empty {
    public static void main(String[] args) {
        String str1 = "wft";
        String str2 = "wft";
        /**
         * 方式1
         * 注意:如果其中一個(gè)字符串可能為 null,直接調(diào)用 equals() 可能會(huì)導(dǎo)致 NullPointerException。為了避免這種情況,將 equals() 調(diào)用放在非 null 的對象上。或者采用方式2
         */
        if(str1.equals(str2)) {
            System.out.println("相等");
        }
        /**
         * 方式2
         */
        if(Objects.equals(str1, str2)) {
            System.out.println("相等");
        }
    }
}

2.2 判斷兩個(gè)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 判斷兩個(gè)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("相等");
        }
    }
}

到此這篇關(guān)于Java中常用判空與判等方法詳解的文章就介紹到這了,更多相關(guān)Java判空與判等內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringMVC攔截器——實(shí)現(xiàn)登錄驗(yàn)證攔截器的示例代碼

    SpringMVC攔截器——實(shí)現(xiàn)登錄驗(yàn)證攔截器的示例代碼

    本篇文章主要介紹了SpringMVC攔截器——實(shí)現(xiàn)登錄驗(yàn)證攔截器的示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • Java中的synchronized?優(yōu)化方法之鎖膨脹機(jī)制

    Java中的synchronized?優(yōu)化方法之鎖膨脹機(jī)制

    這篇文章主要介紹了Java中的synchronized?優(yōu)化方法之鎖膨脹機(jī)制,鎖膨脹機(jī)制是提升?synchronized?性能最有利的方法之一,下面我們就來看看什么事鎖膨脹及鎖膨脹的各種細(xì)節(jié)
    2022-05-05
  • Java遍歷json字符串取值的實(shí)例

    Java遍歷json字符串取值的實(shí)例

    下面小編就為大家分享一篇Java遍歷json字符串取值的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • JAVA多線程處理for循環(huán)數(shù)據(jù)詳細(xì)講解

    JAVA多線程處理for循環(huán)數(shù)據(jù)詳細(xì)講解

    這篇文章主要給大家介紹了關(guān)于JAVA多線程處理for循環(huán)數(shù)據(jù)的相關(guān)資料,我們在代碼中經(jīng)常需要使用for循環(huán)這個(gè)操作來達(dá)到目的,而當(dāng)for循環(huán)的次數(shù)過多時(shí)我們會(huì)發(fā)現(xiàn)執(zhí)行效率會(huì)變的很低,整體耗時(shí)非常多,需要的朋友可以參考下
    2023-07-07
  • spring boot security設(shè)置忽略地址不生效的解決

    spring boot security設(shè)置忽略地址不生效的解決

    這篇文章主要介紹了spring boot security設(shè)置忽略地址不生效的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 類似微信說話功能的錄音處理代碼分享

    類似微信說話功能的錄音處理代碼分享

    這篇文章主要介紹了類似微信中說話功能的錄音處理代碼,需要大家自己加UI界面,大家參考使用吧
    2014-01-01
  • 淺談Java源碼ConcurrentHashMap

    淺談Java源碼ConcurrentHashMap

    最近剛?cè)腴Tjava,覺得看源碼挺有意思的,就記錄一下一些常用類的源碼吧,從而能夠總結(jié)一些使用細(xì)節(jié).本文對源碼ConcurrentHashMap介紹的非常詳細(xì),對正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Spring Security OAuth2實(shí)現(xiàn)使用JWT的示例代碼

    Spring Security OAuth2實(shí)現(xiàn)使用JWT的示例代碼

    這篇文章主要介紹了Spring Security OAuth2實(shí)現(xiàn)使用JWT的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • springboot整合Atomikos的示例詳解

    springboot整合Atomikos的示例詳解

    這篇文章主要為大家詳細(xì)介紹了幾種分布式事務(wù)的解決方案的兩階段提交Atomikos,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2024-11-11
  • struts2.2.3+spring3.1.0+mybatis3.1.0框架整合集成簡單demo

    struts2.2.3+spring3.1.0+mybatis3.1.0框架整合集成簡單demo

    本篇文章主要介紹了struts2.2.3+spring3.1.0 + mybatis3.1.0框架整合,結(jié)合在一起實(shí)現(xiàn)用戶的增刪改查功能,有需要的可以了解一下。
    2016-11-11

最新評論