StringUtils,CollectionUtils判断为空的方法和原生代码哪个效率最高

网友投稿 637 2022-08-24


StringUtils,CollectionUtils判断为空的方法和原生代码哪个效率最高

目录StringUtils,CollectionUtils判断为空的方法和原生代码哪个效率高结论 isBlank与isEmpty区别CollectionUtils封装类,判断为空的方法 StringUtils、CollectionUtils工具类的常用方法一、CollectionUtils工具类1、工作案例二、StringUtils工具类2、工作案例

StringUtils,CollectionUtils判断为空的方法和原生代码哪个效率高

之前一直疑惑,封装类的方法和直接写代码(字符串或者集合否为空)判断哪个效率高,但是最近自己才测试

结论

自己直接写判断效率高(一般是0ms),但是封装的简便、严谨(一般10ms以内)

函数StringUtils.isNotBlank(testString)的功能与StringUtils.isBlank(testString)相反函数StringUtils.isNotEmpty(testString)的功能与StringUtils.isEmpty(testString)相反

isBlank与isEmpty区别

如果字符串是String str = " ";//或者是str = "    ";

所以如果判断为空的话 最好用

StringUtils.isBlank(str) 或者 str!=null && !"".equals(str.trim())

CollectionUtils封装类,判断为空的方法

List list = new ArrayList();

CollectionUtils.isEmpty(list);

Map map = new HashMap();

CollectionUtils.isEmpty(map);

源码:

public static boolean isEmpty(Collection> collection) {

return collection == null || collection.isEmpty();

}

public statichttp:// boolean isEmpty(Map, ?> map) {

return map == null || map.isEmpty();

}

/**

* Returns true if this list contains no elements.

*

* @return true if this list contains no elements

*/

public boolean isEmpty() {

return size == 0;

}

/**

* Returns true if this map contains no key-value mappings.

*

* @return true if this map contains no key-value mappings

*/

public boolean isEmpty() {

return size == 0;

}

针对以上方法,本人认为字符串判断是否为空用StringUtils.isBlank(str );

对集合判断还是用原生代码list != null && list.size>0

StringUtils、CollectionUtils工具类的常用方法

下面将为大家演示StringUtils、CollectionUtils工具类的常用方法。

一、CollectionUtils工具类

作用:常用于判断集合中是否有元素、是否为空等

★★★ 例1 : 判断集合是否为空:

CollectionUtils.isEmpty(null); //控制台打印:true

CollectionUtils.isEmpty(new ArrayList());//控制台打印:true  

CollectionUtils.isEmpty({a,b});//控制台打印:false

★★★ 例2: 判断集合是否不为空:

CollectionUtils.isNotEmpty(null); //控制台打印:false

CollectionUtils.isNotEmpty(new ArrayList()); //控制台打印:false

CollectionUtils.isNotEmpty({a,b}); //控制台打印:true

1、工作案例

1.1、数据库用户实体

public class User implements Serializable {

private Long id; //用户ID

private String name; //用户姓名

private Integer age; //用户年龄

.......

}

1.2、Mapper

/**

* (程序牛CodeCow)用的是注解方式写sql,也可以用XML方式写sql,看个人爱好

*/

@Select("")

List getUserList();//获取所有用户

1.3、测试

@Autowired

private UserMapper userMapper;

List list = userMapper.getUserList();//调用Mapper方法,获取所有用户

if(CollectionUtils.isEmpty(list )){ //使用CollectionUtils工具判断是否为空

//此处进行为空的业务逻辑操作

}else{

//此处进行不为空的业务逻辑操作

}

二、StringUtils工具类

1、作用:常用于判断字符串是否为空、" "、null等

★★★ 例1:判断某字符串是否为空(为空标准:字符串为null或字符串长度为0)

StringUtils.isEmpty(null); //控制台打印:true

StringUtils.isEmpty("") ; //控制台打印:true

StringUtils.isEmpty(" "); //控制台打印:false (空格在StringUtils中作非空处理)

StringUtils.isEmpty("程序牛CodeCow") //控制台打印:false

★★★ 例2:判断某字符串是不为空(和例1相反)

StringUtils.isNotEmpty(null); //控制台打印:false

StringUtils.isNotEmpty(""); //控制台打印:false

StringUtils.isNotEmpty(" "); //控制台打印:true

StringUtils.isNotEmpty("程序牛CodeCow"); //控制台打印:true

★★http://★ 例3:判断某字符串是否为空

StringUtils.isBlank(null); //控制台打印:true

StringUtils.isBlank(""); //控制台打印: true

StringUtils.isBlank(" "); //控制台打印:true

StringUtils.isBlank("程序牛CodeCow")//控制台打印:false

★★★ 例4:判断某字符串是不为空(和例3相反)

StringUtils.isNotBlank(null);//控制台打印:false

StringUtils.isNotBlank(""); //控制台打印:false

StringUtils.isNotBlank(" "); //控制台打印:false

StringUtils.isBlank("程序牛CodeCow")//控制台打印:true

☆☆☆☆☆ isEmpty、isBlank 都是判断字符串是否为空,他两有什么区别 ???

朋友记住一点就行:isBlank 可以说更加严格,比如:

isBlank(" ") isBlank 说我TM就说它 "为空"

isEmpty(" ") isEmpty 说我TM就说它 "不为空"

"朋友你懂了吗^__^"

2、工作案例

2.1、首先导包

//导入commons包;(程序牛CodeCow)用的是 lang3,推荐

org.apache.commons

commons-lang3

3.9

2.2、测试

1 "测试(程序牛CodeCow)就 不多 BB 了, 仔细看了上面的 应该都会了吧 ^__^ "


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python之terminaltables(PythoN)
下一篇:Python之pathlib用法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~