好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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判断为空的方法和原生代码哪个效率最高的详细内容...

  阅读:19次