Java中常用判空與判等方法詳解
java中感覺判空的一些方法太多了,感覺有點兒亂糟糟的,所以這篇就簡單總結(jié)一下我在項目中常用的一些方法吧,并不全哈,只是自己常用的,平時也夠用
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會導(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.雙等于(==)
先說下雙等于,其實開發(fā)中比較少用==。==操作符用于比較兩個變量的值是否相等。不過,它的行為取決于被比較的變量類型
2.基本數(shù)據(jù)類型
當(dāng)==用于比較如int, float, charr等基本數(shù)據(jù)類型的變量時,它比較的是這些變量的實際值。例如,int a = 5; int b = 5; 則 a == b 返回 true,因為它們的值都是5
3.引用類型
當(dāng)==用于比較引用類型(如類、接口、數(shù)組等)時,它比較的是兩個引用是否指向內(nèi)存中的同一個對象地址,而不是比較對象的內(nèi)容或值。例如,如果你有兩個分別創(chuàng)建的String對象,即使它們包含相同的字符序列,使用==比較它們也會返回false,除非這兩個引用實際上指向的是同一個對象實例。
如果你想要比較兩個對象的內(nèi)容是否相等,應(yīng)該使用.equals()方法。比如,對于String類,"hello".equals("hello") 將返回 true,因為它比較的是字符串的內(nèi)容而非它們的內(nèi)存地址。
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,直接調(diào)用 equals() 可能會導(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 判斷兩個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("相等");
}
}
}到此這篇關(guān)于Java中常用判空與判等方法詳解的文章就介紹到這了,更多相關(guān)Java判空與判等內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java數(shù)據(jù)類型轉(zhuǎn)換之自動類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換詳解
在 Java 中,數(shù)據(jù)類型轉(zhuǎn)換用于將一種基本數(shù)據(jù)類型的值轉(zhuǎn)換為另一種基本數(shù)據(jù)類型,主要分為自動類型轉(zhuǎn)換(隱式轉(zhuǎn)換)?和強(qiáng)制類型轉(zhuǎn)換(顯式轉(zhuǎn)換)?兩種,下面小編就為大家簡單介紹一下吧2025-11-11
mybatis的mapper.xml中resultMap標(biāo)簽的使用詳解
這篇文章主要介紹了mybatis的mapper.xml中resultMap標(biāo)簽的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
Java Spring開發(fā)環(huán)境搭建及簡單入門示例教程
這篇文章主要介紹了Java Spring開發(fā)環(huán)境搭建及簡單入門示例,結(jié)合實例形式分析了spring環(huán)境搭建、配置、使用方法及相關(guān)注意事項,需要的朋友可以參考下2017-11-11
解決問題:Failed to execute goal org.apache.m
這篇文章主要給大家介紹了關(guān)于解決問題:Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources的相關(guān)資料,文中將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03
Mybatis在注解上如何實現(xiàn)動態(tài)SQL
這篇文章主要介紹了Mybatis在注解上如何實現(xiàn)動態(tài)SQL,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06

