Package org.miaixz.bus.core.center
Class CollectionValidator
java.lang.Object
org.miaixz.bus.core.center.CollectionValidator
- Direct Known Subclasses:
CollectionStream
Collection检查工具类,提供字对象的blank和empty等检查
- empty定义:
nullor 空字对象:"" - blank定义:
nullor 空字对象:""or 空格、全角空格、制表符、换行符,等不可见字符
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <T extends Collection<E>,E>
TdefaultIfEmpty(T collection, Function<T, T> handler, Supplier<? extends T> defaultSupplier) 如果给定集合为空,返回默认集合static <T extends Collection<E>,E>
TdefaultIfEmpty(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 booleanequals(Collection<?> coll1, Collection<?> coll2, boolean ignoreOrder) 判断两个Iterable中的元素是否相同,可选是否判断顺序 当满足下列情况时返回true: 两个Iterable都为null; 两个Iterable满足coll1 == coll2; 如果忽略顺序,则计算两个集合中元素和数量是否相同 如果不忽略顺序,两个Iterable所有具有相同下标的元素皆满足Objects.equals(Object, Object);static boolean是否包含null元素 集合为null,返回true集合为空集合,即元素个数为0,返回false集合中元素为"",返回falsestatic booleanIterable是否为空static booleanisEmpty(Collection<?> collection) 集合是否为空static booleanisEmpty(Enumeration<?> enumeration) Enumeration是否为空static booleanIterator是否为空static booleanMap是否为空static booleanisEqualList(Collection<?> list1, Collection<?> list2) 判断两个Collection是否元素和顺序相同,返回true的条件是: 两个Collection必须长度相同 两个Collection元素相同index的对象必须equals,满足Objects.equals(Object, Object)static booleanisNotEmpty(Iterable<?> iterable) Iterable是否为空static booleanisNotEmpty(Collection<?> collection) 集合是否为非空static booleanisNotEmpty(Enumeration<?> enumeration) Enumeration是否为空static booleanisNotEmpty(Iterator<?> iterator) Iterator是否为空static booleanisNotEmpty(Map<?, ?> map) Map是否为非空static booleanisSub(Collection<?> subCollection, Collection<?> collection) 判断subCollection是否为collection的子集合,不考虑顺序,只考虑元素数量。 如果两个集合为同一集合或,则返回true 如果两个集合元素都相同,则返回true(无论顺序相同与否)static int获取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
-
Constructor Details
-
CollectionValidator
public CollectionValidator()
-
-
Method Details
-
isEmpty
集合是否为空- Parameters:
collection- 集合- Returns:
- 是否为空
-
isEmpty
Iterable是否为空- Parameters:
iterable- Iterable对象- Returns:
- 是否为空
- See Also:
-
isEmpty
Iterator是否为空- Parameters:
iterator- Iterator对象- Returns:
- 是否为空
- See Also:
-
isEmpty
Enumeration是否为空- Parameters:
enumeration-Enumeration- Returns:
- 是否为空
-
isEmpty
Map是否为空- Parameters:
map- 集合- Returns:
- 是否为空
- See Also:
-
defaultIfEmpty
如果给定集合为空,返回默认集合- 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
如果提供的集合为null,返回一个不可变的默认空集合,否则返回原集合 空集合使用Collections.emptySet()- Type Parameters:
T- 集合元素类型- Parameters:
set- 提供的集合,可能为null- Returns:
- 原集合,若为null返回空集合
-
emptyIfNull
如果提供的集合为null,返回一个不可变的默认空集合,否则返回原集合 空集合使用Collections.emptyList()- Type Parameters:
T- 集合元素类型- Parameters:
list- 提供的集合,可能为null- Returns:
- 原集合,若为null返回空集合
-
isNotEmpty
集合是否为非空- Parameters:
collection- 集合- Returns:
- 是否为非空
-
isNotEmpty
Iterable是否为空- Parameters:
iterable- Iterable对象- Returns:
- 是否为空
- See Also:
-
isNotEmpty
Iterator是否为空- Parameters:
iterator- Iterator对象- Returns:
- 是否为空
- See Also:
-
isNotEmpty
Enumeration是否为空- Parameters:
enumeration-Enumeration- Returns:
- 是否为空
-
hasNull
是否包含null元素- 集合为
null,返回true - 集合为空集合,即元素个数为0,返回
false - 集合中元素为"",返回
false
- Parameters:
iterable- 被检查的Iterable对象,如果为null返回true- Returns:
- 是否包含
null元素 - See Also:
- 集合为
-
isNotEmpty
Map是否为非空- Parameters:
map- 集合- Returns:
- 是否为非空
- See Also:
-
isSub
判断subCollection是否为collection的子集合,不考虑顺序,只考虑元素数量。- 如果两个集合为同一集合或,则返回true
- 如果两个集合元素都相同,则返回true(无论顺序相同与否)
- Parameters:
subCollection- 第一个Iterable对象,即子集合。collection- 第二个Iterable对象,可以为任何实现了Iterable接口的集合。- Returns:
- 如果subCollection是collection的子集合,则返回true;否则返回false。
-
isEqualList
判断两个Collection是否元素和顺序相同,返回true的条件是:- 两个
Collection必须长度相同 - 两个
Collection元素相同index的对象必须equals,满足Objects.equals(Object, Object)
- Parameters:
list1- 列表1list2- 列表2- Returns:
- 是否相同
- 两个
-
equals
判断两个Iterable中的元素是否相同,可选是否判断顺序 当满足下列情况时返回true:- 两个
Iterable都为null; - 两个
Iterable满足coll1 == coll2; - 如果忽略顺序,则计算两个集合中元素和数量是否相同
- 如果不忽略顺序,两个
Iterable所有具有相同下标的元素皆满足Objects.equals(Object, Object);
- Parameters:
coll1- 集合1coll2- 集合2ignoreOrder- 是否忽略顺序- Returns:
- 是否相同
- 两个
-
size
获取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
-