之前一直疑惑,封装类的方法和直接写代码(字符串或者集合否为空)判断哪个效率高,但是最近自己才测试
结论 :自己直接写判断效率高(一般是0ms),但是封装的简便、严谨(一般10ms以内)
函数StringUtils.isNotBlank(testString)的功能与StringUtils.isBlank(testString)相反
函数StringUtils.isNotEmpty(testString)的功能与StringUtils.isEmpty(testString)相反.
isBlank与isEmpty区别
如果字符串是String str = " ";//或者是str = " ";
那么StringUtils.isBlank(str ) = true;
StringUtils.isEmpty(str ) = false;
所以如果判断为空的话 最好用
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