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

spring.turbo.util.collection.CollectionUtils Maven / Gradle / Ivy

package spring.turbo.util.collection;

import org.springframework.lang.Nullable;
import spring.turbo.util.Asserts;

import java.util.Collection;
import java.util.Map;
import java.util.Optional;

/**
 * 集合相关工具
 *
 * @author 应卓
 * @since 1.0.5
 */
public final class CollectionUtils {

    /**
     * 私有构造方法
     */
    private CollectionUtils() {
        super();
    }

    /**
     * 获取collection长度
     *
     * @param collection collection,可为 {@code null}
     * @param         集合的泛型类型
     * @return 长度或0
     */
    public static  int size(@Nullable Collection collection) {
        return collection != null ? collection.size() : 0;
    }

    /**
     * 获取map长度
     *
     * @param map map,可为 {@code null}
     * @param  KEY类型泛型
     * @param  VALUE类型泛型
     * @return 长度或0
     */
    public static  int size(@Nullable Map map) {
        return map != null ? map.size() : 0;
    }

    /**
     * 判断collection是否为空
     *
     * @param collection collection,可为 {@code null}
     * @param         collection的泛型类型
     * @return 空时返回 {@code true} 否则返回 {@code false}
     */
    public static  boolean isEmpty(@Nullable Collection collection) {
        return size(collection) == 0;
    }

    /**
     * 判断map是否为空
     *
     * @param map map,可为 {@code null}
     * @param  KEY类型泛型
     * @param  VALUE类型泛型
     * @return 空时返回 {@code true} 否则返回 {@code false}
     */
    public static  boolean isEmpty(@Nullable Map map) {
        return size(map) == 0;
    }

    /**
     * 判断collection是否不为空
     *
     * @param collection collection,可为 {@code null}
     * @param         collection的泛型类型
     * @return 空时返回 {@code false} , 否则返回 {@code true}
     */
    public static  boolean isNotEmpty(@Nullable Collection collection) {
        return size(collection) != 0;
    }

    /**
     * 判断map是否不为空
     *
     * @param map map,可为 {@code null}
     * @param  KEY类型泛型
     * @param  VALUE类型泛型
     * @return 空时返回 {@code false} , 否则返回 {@code true}
     */
    public static  boolean isNotEmpty(@Nullable Map map) {
        return size(map) != 0;
    }

    /**
     * 为集合添加元素,并小心地处理空值
     *
     * @param collection 要加入的集合
     * @param element    待添加的元素
     * @param         集合的泛型类型
     */
    public static  void nullSafeAdd(Collection collection, @Nullable T element) {
        Asserts.notNull(collection);
        if (element != null) {
            collection.add(element);
        }
    }

    /**
     * 为集合添加元素,并小心地处理空值
     *
     * @param collection 要加入的集合
     * @param elements   待添加的元素
     * @param         集合的泛型类型
     */
    public static  void nullSafeAddAll(Collection collection, @Nullable T[] elements) {
        Asserts.notNull(collection);
        if (elements != null) {
            for (T obj : elements) {
                Optional.ofNullable(obj).ifPresent(collection::add);
            }
        }
    }

    /**
     * 为集合添加元素,并小心地处理空值
     *
     * @param collection 要加入的集合
     * @param elements   待添加的元素
     * @param         集合的泛型类型
     */
    public static  void nullSafeAddAll(Collection collection, @Nullable Collection elements) {
        Asserts.notNull(collection);
        if (elements != null) {
            for (T obj : elements) {
                Optional.ofNullable(obj).ifPresent(collection::add);
            }
        }
    }

    /**
     * 为映射添加元素,并小心地处理空值
     *
     * @param map      要加入的映射
     * @param elements 待添加的元素
     * @param       集合的泛型类型 key
     * @param       集合的泛型类型 vakue
     */
    public static  void nullSafeAddAll(Map map, @Nullable Map elements) {
        Asserts.notNull(map);
        if (elements != null) {
            map.putAll(elements);
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy