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 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 : 判断集合是否为空:
 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("<script> " +
              "select * from User " +
        "</script>")
List<User> getUserList();//获取所有用户

1.3、测试

@Autowired
private UserMapper userMapper;
List<User> list = userMapper.getUserList();//调用Mapper方法,获取所有用户
if(CollectionUtils.isEmpty(list )){ //使用CollectionUtils工具判断是否为空
    //此处进行为空的业务逻辑操作
}else{
    //此处进行不为空的业务逻辑操作
}

二、StringUtils工具类

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

★★★ 例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、首先导包

 //导入commons包;小编(程序牛CodeCow)用的是 lang3,推荐
 <dependency>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-lang3</artifactId>
     <version>3.9</version>
 </dependency>

2.2、测试

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • java中拼接字符串的5种方法效率对比

    前言 最近写一个东东,可能会考虑到字符串拼接,想了几种方法,但对性能未知,所以下面就来测试下面,话不多说了,来一起看看详细的介绍吧. 示例代码 public class Test { List<String> list = new ArrayList<>(); @Before public void init(){ IntStream.range(0, 100000).forEach((index) -> { list.add("str" + index)

  • java判断是否空最简单的方法

    java判断是否空的方法: 1.判断字符串或者对象是否为空 StringUtils的判断 StringUtils.isEmpty(CharSequence cs); //org.apache.commons.lang3包下的StringUtils类,判断是否为空的方法参数是字符序列类,也就是String类型 StringUtils.isEmpty(Object str); //而org.springframework.util包下的参数是Object类,也就是不仅仅能判断String类型,还能判

  • Java中判断对象是否为空的方法的详解

    首先来看一下工具StringUtils的判断方法: 一种是org.apache.commons.lang3包下的: 另一种是org.springframework.util包下的.这两种StringUtils工具类判断对象是否为空是有差距的: StringUtils.isEmpty(CharSequence cs); //org.apache.commons.lang3包下的StringUtils类,判断是否为空的方法参数是字符序列类,也就是String类型 StringUtils.isEmpt

  • Java中StringUtils工具类进行String为空的判断解析

    判断某字符串是否为空,为空的标准是str==null或str.length()==0 1.下面是StringUtils判断是否为空的示例: StringUtils.isEmpty(null) = true StringUtils.isEmpty("") = true StringUtils.isEmpty(" ") = false //注意在 StringUtils 中空格作非空处理 StringUtils.isEmpty(" ") = fals

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

    目录 StringUtils,CollectionUtils判断为空的方法和原生代码哪个效率高 结论 isBlank与isEmpty区别 CollectionUtils封装类,判断为空的方法 StringUtils.CollectionUtils工具类的常用方法 一.CollectionUtils工具类 1.工作案例 二.StringUtils工具类 2.工作案例 StringUtils,CollectionUtils判断为空的方法和原生代码哪个效率高 之前一直疑惑,封装类的方法和直接写代码(字

  • java判断Long类型的方法和实例代码

    java判断是否是Long类型 1.首先定义一个getType方法,接收一个Object类型的参数: 2.然后使用getClass方法获取class类型的对象: 3.再使用toString()方法转为字符串,并使用substring截取字符串获得变量类型: 4.最后根据变量类型和Long字符串进行对比即可 public class HelloWorld { public static void main(String[] args) { Boolean res = getType(1232343

  • js中定义一个变量并判断其是否为空的方法

    js中定义一个变量 var params=null;判断params不为空的方法: 复制代码 代码如下: if(params && params.hasOwnProperty("name")){} 其中:console.info(params);//结果为:Object {}

  • JS集成fckeditor及判断内容是否为空的方法

    本文实例讲述了JS集成fckeditor及判断内容是否为空的方法.分享给大家供大家参考,具体如下: <script type="text/javascript"> <!-- // Automatically calculates the editor base path based on the _samples directory. // This is usefull only for these samples. A real application shoul

  • smarty模板判断数组为空的方法

    本文实例讲述了smarty模板判断数组为空的方法.分享给大家供大家参考.具体如下: 这里主要介绍两种方法: 1. 用count来取得数组的下标个数 下面例子中,如果$array为空则不输出任何数据 {if $array|@count neq 0 } // array is empty {/if} 2. 直接判断 { if $array neq ""} //array is empty {/if} 希望本文所述对大家基于smarty模板的php程序设计有所帮助.

  • C#判断多个文本框是否为空的方法

    本文实例讲述了C#判断多个文本框是否为空的方法.分享给大家供大家参考.具体实现方法如下: /// <summary> /// 自定义方法,判断项目中txt标签是否为空 /// </summary> /// <param name="txt">要进行判断为空的标签</param> /// <returns>是否全部都不为空,如果全部都不为空返回 true </returns> bool CheckEmpty(para

  • python简单判断序列是否为空的方法

    本文实例讲述了python简单判断序列是否为空的方法.分享给大家供大家参考.具体如下: 假设有如下序列: m1 = [] m2 = () m3 = {} 判断他们是否为空的高效方法是: if m1: ...... if not m2: ...... 希望本文所述对大家的Python程序设计有所帮助.

  • JS判断非空至少输入两个字符的简单实现方法

    dialog是我项目方法,你应该替换成alert(),或者你自己的 var str = $("#stuName").val(); if (str.length < 2) { dialog("提示", "text:请输入至少两位字符", 300, "auto", ""); return false; } str = str.replace(/(^\s*)|(\s*$)/g, '');//去除空格; if

随机推荐