Class CollectionValidator

java.lang.Object
org.miaixz.bus.core.center.CollectionValidator
Direct Known Subclasses:
CollectionStream

public class CollectionValidator extends Object
Collection检查工具类,提供字对象的blank和empty等检查
  • empty定义:null or 空字对象:""
  • blank定义:null or 空字对象:"" or 空格、全角空格、制表符、换行符,等不可见字符
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static <T extends Collection<E>, E>
    T
    defaultIfEmpty(T collection, Function<T,T> handler, Supplier<? extends T> defaultSupplier)
    如果给定集合为空,返回默认集合
    static <T extends Collection<E>, E>
    T
    defaultIfEmpty(T collection, T defaultCollection)
    如果给定集合为空,返回默认集合
    static <T> List<T>
    emptyIfNull(List<T> list)
    如果提供的集合为null,返回一个不可变的默认空集合,否则返回原集合 空集合使用Collections.emptyList()
    static <T> Set<T>
    emptyIfNull(Set<T> set)
    如果提供的集合为null,返回一个不可变的默认空集合,否则返回原集合 空集合使用Collections.emptySet()
    static boolean
    equals(Collection<?> coll1, Collection<?> coll2, boolean ignoreOrder)
    判断两个Iterable中的元素是否相同,可选是否判断顺序 当满足下列情况时返回true: 两个Iterable都为null; 两个Iterable满足coll1 == coll2; 如果忽略顺序,则计算两个集合中元素和数量是否相同 如果不忽略顺序,两个Iterable所有具有相同下标的元素皆满足Objects.equals(Object, Object)
    static boolean
    hasNull(Iterable<?> iterable)
    是否包含null元素 集合为null,返回true 集合为空集合,即元素个数为0,返回false 集合中元素为"",返回false
    static boolean
    isEmpty(Iterable<?> iterable)
    Iterable是否为空
    static boolean
    isEmpty(Collection<?> collection)
    集合是否为空
    static boolean
    isEmpty(Enumeration<?> enumeration)
    Enumeration是否为空
    static boolean
    isEmpty(Iterator<?> iterator)
    Iterator是否为空
    static boolean
    isEmpty(Map<?,?> map)
    Map是否为空
    static boolean
    isEqualList(Collection<?> list1, Collection<?> list2)
    判断两个Collection 是否元素和顺序相同,返回true的条件是: 两个Collection必须长度相同 两个Collection元素相同index的对象必须equals,满足Objects.equals(Object, Object)
    static boolean
    isNotEmpty(Iterable<?> iterable)
    Iterable是否为空
    static boolean
    isNotEmpty(Collection<?> collection)
    集合是否为非空
    static boolean
    isNotEmpty(Enumeration<?> enumeration)
    Enumeration是否为空
    static boolean
    isNotEmpty(Iterator<?> iterator)
    Iterator是否为空
    static boolean
    isNotEmpty(Map<?,?> map)
    Map是否为非空
    static boolean
    isSub(Collection<?> subCollection, Collection<?> collection)
    判断subCollection是否为collection的子集合,不考虑顺序,只考虑元素数量。 如果两个集合为同一集合或,则返回true 如果两个集合元素都相同,则返回true(无论顺序相同与否)
    static int
    size(Object object)
    获取Collection或者iterator的大小,此方法可以处理的对象类型如下: Collection - the collection size Map - the map size Array - the array size Iterator - the number of elements remaining in the iterator Enumeration - the number of elements remaining in the enumeration

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • CollectionValidator

      public CollectionValidator()
  • Method Details

    • isEmpty

      public static boolean isEmpty(Collection<?> collection)
      集合是否为空
      Parameters:
      collection - 集合
      Returns:
      是否为空
    • isEmpty

      public static boolean isEmpty(Iterable<?> iterable)
      Iterable是否为空
      Parameters:
      iterable - Iterable对象
      Returns:
      是否为空
      See Also:
    • isEmpty

      public static boolean isEmpty(Iterator<?> iterator)
      Iterator是否为空
      Parameters:
      iterator - Iterator对象
      Returns:
      是否为空
      See Also:
    • isEmpty

      public static boolean isEmpty(Enumeration<?> enumeration)
      Enumeration是否为空
      Parameters:
      enumeration - Enumeration
      Returns:
      是否为空
    • isEmpty

      public static boolean isEmpty(Map<?,?> map)
      Map是否为空
      Parameters:
      map - 集合
      Returns:
      是否为空
      See Also:
    • defaultIfEmpty

      public static <T extends Collection<E>, E> T defaultIfEmpty(T collection, T defaultCollection)
      如果给定集合为空,返回默认集合
      Type Parameters:
      T - 集合类型
      E - 集合元素类型
      Parameters:
      collection - 集合
      defaultCollection - 默认数组
      Returns:
      非空(empty)的原集合或默认集合
    • defaultIfEmpty

      public static <T extends Collection<E>, E> T defaultIfEmpty(T collection, Function<T,T> handler, Supplier<? extends T> defaultSupplier)
      如果给定集合为空,返回默认集合
      Type Parameters:
      T - 集合类型
      E - 集合元素类型
      Parameters:
      collection - 集合
      handler - 非空的处理函数
      defaultSupplier - 默认值懒加载函数
      Returns:
      非空(empty)的原集合或默认集合
    • emptyIfNull

      public static <T> Set<T> emptyIfNull(Set<T> set)
      如果提供的集合为null,返回一个不可变的默认空集合,否则返回原集合 空集合使用Collections.emptySet()
      Type Parameters:
      T - 集合元素类型
      Parameters:
      set - 提供的集合,可能为null
      Returns:
      原集合,若为null返回空集合
    • emptyIfNull

      public static <T> List<T> emptyIfNull(List<T> list)
      如果提供的集合为null,返回一个不可变的默认空集合,否则返回原集合 空集合使用Collections.emptyList()
      Type Parameters:
      T - 集合元素类型
      Parameters:
      list - 提供的集合,可能为null
      Returns:
      原集合,若为null返回空集合
    • isNotEmpty

      public static boolean isNotEmpty(Collection<?> collection)
      集合是否为非空
      Parameters:
      collection - 集合
      Returns:
      是否为非空
    • isNotEmpty

      public static boolean isNotEmpty(Iterable<?> iterable)
      Iterable是否为空
      Parameters:
      iterable - Iterable对象
      Returns:
      是否为空
      See Also:
    • isNotEmpty

      public static boolean isNotEmpty(Iterator<?> iterator)
      Iterator是否为空
      Parameters:
      iterator - Iterator对象
      Returns:
      是否为空
      See Also:
    • isNotEmpty

      public static boolean isNotEmpty(Enumeration<?> enumeration)
      Enumeration是否为空
      Parameters:
      enumeration - Enumeration
      Returns:
      是否为空
    • hasNull

      public static boolean hasNull(Iterable<?> iterable)
      是否包含null元素
      • 集合为null,返回true
      • 集合为空集合,即元素个数为0,返回false
      • 集合中元素为"",返回false
      Parameters:
      iterable - 被检查的Iterable对象,如果为null 返回true
      Returns:
      是否包含null元素
      See Also:
    • isNotEmpty

      public static boolean isNotEmpty(Map<?,?> map)
      Map是否为非空
      Parameters:
      map - 集合
      Returns:
      是否为非空
      See Also:
    • isSub

      public static boolean isSub(Collection<?> subCollection, Collection<?> collection)
      判断subCollection是否为collection的子集合,不考虑顺序,只考虑元素数量。
      • 如果两个集合为同一集合或,则返回true
      • 如果两个集合元素都相同,则返回true(无论顺序相同与否)
      Parameters:
      subCollection - 第一个Iterable对象,即子集合。
      collection - 第二个Iterable对象,可以为任何实现了Iterable接口的集合。
      Returns:
      如果subCollection是collection的子集合,则返回true;否则返回false。
    • isEqualList

      public static boolean isEqualList(Collection<?> list1, Collection<?> list2)
      判断两个Collection 是否元素和顺序相同,返回true的条件是:
      Parameters:
      list1 - 列表1
      list2 - 列表2
      Returns:
      是否相同
    • equals

      public static boolean equals(Collection<?> coll1, Collection<?> coll2, boolean ignoreOrder)
      判断两个Iterable中的元素是否相同,可选是否判断顺序 当满足下列情况时返回true
      Parameters:
      coll1 - 集合1
      coll2 - 集合2
      ignoreOrder - 是否忽略顺序
      Returns:
      是否相同
    • size

      public static int size(Object object)
      获取Collection或者iterator的大小,此方法可以处理的对象类型如下:
      • Collection - the collection size
      • Map - the map size
      • Array - the array size
      • Iterator - the number of elements remaining in the iterator
      • Enumeration - the number of elements remaining in the enumeration
      Parameters:
      object - 可以为空的对象
      Returns:
      如果object为空则返回0
      Throws:
      IllegalArgumentException - 参数object不是Collection或者iterator