All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.opencodes.framework.tools.utils.ArrayUtils Maven / Gradle / Ivy

There is a newer version: 1.0.4
Show newest version
package cn.opencodes.framework.tools.utils;

import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class ArrayUtils extends org.apache.commons.lang.ArrayUtils{
	
	/**
	 * 字符串转list
	 * @param a 字符串
	 * @param regex 分隔符
	 */
	@SuppressWarnings("unchecked")
	public static List asList(String a, String regex){
		if (StringUtils.isNotBlank(a)) {
			List list = new java.util.ArrayList<>();
			String[] arry = a.trim().split(regex);
			for (String s : arry) {
				list.add( (T)s );
			}
			return list;
		}
		return null;
	}
	
	/**
	 * 字符串转list --- 默认逗号分隔
	 * @param a
	 */
	public static List asList(String a){
		return asList(a, ",");
	}
	
	/**
	 * 如果提供的集合为{@code null},返回一个不可变的默认空集合,否则返回原集合
* 空集合使用{@link Collections#emptySet()} * * @param 集合元素类型 * @param set 提供的集合,可能为null * @return 原集合,若为null返回空集合 */ public static Set emptyIfNull(Set set) { return (null == set) ? Collections.emptySet() : set; } /** * 新建Set集合 * @return 返回一个空Set */ public static Set newSet() { return Collections.emptySet(); } /** * 如果提供的集合为{@code null},返回一个不可变的默认空集合,否则返回原集合
* 空集合使用{@link Collections#emptyList()} * * @param 集合元素类型 * @param set 提供的集合,可能为null * @return 原集合,若为null返回空集合 */ public static List emptyIfNull(List list) { return (null == list) ? Collections.emptyList() : list; } /** * 新建List集合 * @return 返回一个空List */ public static List newList(){ return Collections.emptyList(); } /** * 判断指定集合是否包含指定值,如果集合为空(null或者空),返回{@code false},否则找到元素返回{@code true} * * @param collection 集合 * @param value 需要查找的值 * @return 如果集合为空(null或者空),返回{@code false},否则找到元素返回{@code true} */ public static boolean contains(Collection collection, Object value) { return isNotEmpty(collection) && collection.contains(value); } /** * 根据集合返回一个元素计数的 {@link Map}
* 所谓元素计数就是假如这个集合中某个元素出现了n次,那将这个元素做为key,n做为value
* 例如:[a,b,c,c,c] 得到:
* a: 1
* b: 1
* c: 3
* * @param 集合元素类型 * @param iter {@link Iterator},如果为null返回一个空的Map * @return {@link Map} */ public static Map countElement(Iterator iter) { final HashMap countMap = new HashMap<>(); if (null != iter) { Integer count; T t; while (iter.hasNext()) { t = iter.next(); count = countMap.get(t); if (null == count) { countMap.put(t, 1); } else { countMap.put(t, count + 1); } } } return countMap; } /** * 集合是否为空 * @param collection 集合 * @return 是否为空 */ public static boolean isEmpty(Collection collection) { return collection == null || collection.isEmpty(); } /** * 集合是否为非空 * @param collection 集合 * @return 是否为非空 */ public static boolean isNotEmpty(Collection collection) { return false == isEmpty(collection); } /** * 是否包含{@code null}元素 * @param iter 被检查的{@link Iterator}对象,如果为{@code null} 返回false * @return 是否包含{@code null}元素 */ public static boolean hasNull(Iterator iter) { if (null == iter) { return true; } while (iter.hasNext()) { if (null == iter.next()) { return true; } } return false; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy