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封装类,判断为空的方法
1 2 3 4 |
List list = new ArrayList(); CollectionUtils.isEmpty(list); Map map = new HashMap(); CollectionUtils.isEmpty(map); |
源码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public static boolean isEmpty(Collection<?> collection) { return collection == null || collection.isEmpty(); } public static boolean isEmpty(Map<?, ?> map) { return map == null || map.isEmpty(); } /** * Returns <tt>true</tt> if this list contains no elements. * * @return <tt>true</tt> if this list contains no elements */ public boolean isEmpty() { return size == 0 ; } /** * Returns <tt>true</tt> if this map contains no key-value mappings. * * @return <tt>true</tt> 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 2 3 4 5 6 7 8 9 |
★★★ 例 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、数据库用户实体
1 2 3 4 5 6 |
public class User implements Serializable { private Long id; //用户ID private String name; //用户姓名 private Integer age; //用户年龄 ....... } |
1.2、Mapper
1 2 3 4 5 6 7 |
/** * 小编(程序牛CodeCow)用的是注解方式写sql,也可以用XML方式写sql,看个人爱好 */ @Select ( "<script> " + "select * from User " + "</script>" ) List<User> getUserList(); //获取所有用户 |
1.3、测试
1 2 3 4 5 6 7 8 |
@Autowired private UserMapper userMapper; List<User> list = userMapper.getUserList(); //调用Mapper方法,获取所有用户 if (CollectionUtils.isEmpty(list )){ //使用CollectionUtils工具判断是否为空 //此处进行为空的业务逻辑操作 } else { //此处进行不为空的业务逻辑操作 } |
二、StringUtils工具类
1、作用:常用于判断字符串是否为空、" "、null等
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
★★★ 例 1 :<isEmpty>判断某字符串是否为空(为空标准:字符串为 null 或字符串长度为 0 ) StringUtils.isEmpty( null ); //控制台打印:true StringUtils.isEmpty( "" ) ; //控制台打印:true StringUtils.isEmpty( " " ); //控制台打印:false (空格在StringUtils中作非空处理) StringUtils.isEmpty( "程序牛CodeCow" ) //控制台打印:false
★★★ 例 2 :<isNotEmpty>判断某字符串是不为空(和例 1 相反) StringUtils.isNotEmpty( null ); //控制台打印:false StringUtils.isNotEmpty( "" ); //控制台打印:false StringUtils.isNotEmpty( " " ); //控制台打印:true StringUtils.isNotEmpty( "程序牛CodeCow" ); //控制台打印:true
★★★ 例 3 :<isBlank>判断某字符串是否为空 StringUtils.isBlank( null ); //控制台打印:true StringUtils.isBlank( "" ); //控制台打印: true StringUtils.isBlank( " " ); //控制台打印:true StringUtils.isBlank( "程序牛CodeCow" ) //控制台打印:false
★★★ 例 4 :<isNotBlank>判断某字符串是不为空(和例 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、首先导包
1 2 3 4 5 6 |
//导入commons包;小编(程序牛CodeCow)用的是 lang3,推荐 < dependency > < groupId >org.apache测试数据mons</ groupId > < artifactId >commons-lang3</ artifactId > < version >3.9</ version > </ dependency > |
2.2、测试
1 "测试小编(程序牛CodeCow)就 不多 BB 了, 仔细看了上面的 应该都会了吧 ^__^ "
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
原文链接:https://blog.csdn.net/qq_1411/article/details/83443218
查看更多关于StringUtils,CollectionUtils判断为空的方法和原生代码哪个效率最高的详细内容...