Package org.aoju.bus.core.toolkit
Class IterKit
java.lang.Object
org.aoju.bus.core.toolkit.IterKit
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <E> Iterable<E> asIterable(Iterator<E> iter) static <E> Iterator<E> asIterator(Enumeration<E> e) Enumeration转换为Iteratorstatic void清空指定Iterator,此方法遍历后调用Iterator.remove()移除每个元素根据集合返回一个元素计数的Map所谓元素计数就是假如这个集合中某个元素出现了n次,那将这个元素做为key,n做为value 例如:[a,b,c,c,c] 得到: a: 1 b: 1 c: 3根据集合返回一个元素计数的Map所谓元素计数就是假如这个集合中某个元素出现了n次,那将这个元素做为key,n做为value 例如:[a,b,c,c,c] 得到: a: 1 b: 1 c: 3static <T> Iterator<T> empty()返回一个空Iteratorstatic <K,V> Map <K, V> fieldValueAsMap(Iterator<?> iterator, String fieldNameForKey, String fieldNameForValue) 两个字段值组成新的Mapstatic <V,R> List <R> fieldValueList(Iterable<V> iterable, String fieldName) 获取指定Bean列表中某个字段,生成新的列表static <V,R> List <R> fieldValueList(Iterator<V> iterator, String fieldName) 获取指定Bean列表中某个字段,生成新的列表static <K,V> Map <K, V> fieldValueMap(Iterable<V> iterable, String fieldName) 字段值与列表值对应的Map,常用于元素对象中有唯一ID时需要按照这个ID查找对象的情况 例如:车牌号 = 车static <K,V> Map <K, V> fieldValueMap(Iterator<V> iterator, String fieldName) 字段值与列表值对应的Map,常用于元素对象中有唯一ID时需要按照这个ID查找对象的情况 例如:车牌号 = 车static <E> Iterator<E> 过滤集合,此方法在原集合上直接修改 通过实现Filter接口,完成元素的过滤,这个Filter实现可以实现以下功能:static <T extends Iterable<E>,E>
T过滤集合,此方法在原集合上直接修改 通过实现Filter接口,完成元素的过滤,这个Filter实现可以实现以下功能:static <E> FilterIterator<E> 获取一个新的FilterIterator,用于过滤指定元素static <E> List<E> filterToList(Iterator<E> iter, Predicate<E> filter) 过滤Iterator并将过滤后满足条件的元素添加到List中static <E> voidstatic <T> Iterator<T> 获取Iteratorstatic Iterator<?> 从给定的对象中获取可能存在的Iterator,规则如下: null - null Iterator - 直接返回 Enumeration -EnumerationIteratorCollection - 调用Collection.iterator()Map - Entry的IteratorDictionary - values (elements) enumeration returned as iterator array -ArrayIteratorNodeList -NodeListIteratorNode - 子节点 object with iterator() public method,通过反射访问 object - 单对象的ArrayIteratorstatic <E> E遍历Iterator,获取指定index位置的元素static Class<?> getElementType(Iterable<?> iterable) 获得Iterable对象的元素类型(通过第一个非空元素判断) 注意,此方法至少会调用多次next方法static Class<?> getElementType(Iterator<?> iterator) 获得Iterator对象的元素类型(通过第一个非空元素判断) 注意,此方法至少会调用多次next方法static <T> T获取集合的第一个元素static <T> T获取集合的第一个元素static <T> T返回Iterator中第一个匹配规则的值static <T> TgetFirstNoneNull(Iterable<T> iterable) 获取集合的第一个非空元素static <T> TgetFirstNoneNull(Iterator<T> iterator) 获取集合的第一个非空元素static boolean是否包含null元素static boolean是否包含null元素static boolean是否全部元素为nullstatic boolean是否全部元素为nullstatic booleanIterable是否为空static booleanIterator是否为空static booleanisEqualList(Iterable<?> list1, Iterable<?> list2) 判断两个Iterable是否元素和顺序相同,返回true的条件是: 两个Iterable必须长度相同 两个Iterable元素相同index的对象必须equals,满足Objects.equals(Object, Object)此方法来自Apache-Commons-Collections4。static booleanisNotEmpty(Iterable<?> iterable) Iterable是否为空static booleanisNotEmpty(Iterator<?> iterator) Iterator是否为空static <T> Stringjoin(Iterable<T> iterable, CharSequence conjunction) 以 conjunction 为分隔符将集合转换为字符串static <T> Stringjoin(Iterable<T> iterable, CharSequence conjunction, String prefix, String suffix) 以 conjunction 为分隔符将集合转换为字符串static <T> Stringjoin(Iterator<T> iterator, CharSequence conjunction) static <T> Stringjoin(Iterator<T> iterator, CharSequence conjunction, String prefix, String suffix) static <T> Stringjoin(Iterator<T> iterator, CharSequence conjunction, Function<T, ? extends CharSequence> func) static int返回 Iterable 对象的元素数量static int返回 Iterator 对象的元素数量static <E> List<E> Iterator转List 不判断,直接生成新的Liststatic <E> List<E> Iterator转List 不判断,直接生成新的List将列表转成值为List的HashMap将列表转成值为List的HashMaptoListMap(Map<K, List<V>> resultMap, Iterable<T> iterable, Function<T, K> keyMapper, Function<T, V> valueMapper) 将列表转成值为List的HashMapstatic <K,V> HashMap <K, V> 将Entry集合转换为HashMapstatic <K,V> Map <K, V> 将键列表和值列表转换为Map 以键为准,值与键位置需对应 如果键元素数多于值元素,多余部分值用null代替 如果值多于键,忽略多余的值static <K,V> Map <K, V> 将键列表和值列表转换为Map 以键为准,值与键位置需对应 如果键元素数多于值元素,多余部分值用null代替 如果值多于键,忽略多余的值static <T,K, V> Map <K, V> 将列表转成HashMapstatic <K,V> Map <K, V> 将列表转成HashMapstatic <K,V, E> Map <K, V> 集合转换为Map,转换规则为: 按照keyFunc函数规则根据元素对象生成Key,按照valueFunc函数规则根据元素对象生成value组成新的Mapstatic <K,V> Map <K, V> 将键列表和值列表转换为Map 以键为准,值与键位置需对应 如果键元素数多于值元素,多余部分值用null代替 如果值多于键,忽略多余的值static <K,V> Map <K, V> 将键列表和值列表转换为Map 以键为准,值与键位置需对应 如果键元素数多于值元素,多余部分值用null代替 如果值多于键,忽略多余的值static <K,V> Map <K, V> Iterator转换为Map,转换规则为: 按照keyFunc函数规则根据元素对象生成Key,元素作为值static <T,K, V> Map <K, V> 将列表转成Mapstatic <E> String拼接Iterator为字符串static <E> String拼接Iterator为字符串static <E> StringtoString(Iterator<E> iterator, Function<? super E, String> transFunc, String delimiter, String prefix, String suffix) 拼接Iterator为字符串
-
Constructor Details
-
IterKit
public IterKit()
-
-
Method Details
-
isEmpty
Iterable是否为空- Parameters:
iterable- Iterable对象- Returns:
- 是否为空
-
isEmpty
Iterator是否为空- Parameters:
iterator- Iterator对象- Returns:
- 是否为空
-
isNotEmpty
Iterable是否为空- Parameters:
iterable- Iterable对象- Returns:
- 是否为空
-
isNotEmpty
Iterator是否为空- Parameters:
iterator- Iterator对象- Returns:
- 是否为空
-
isEqualList
-
hasNull
-
hasNull
-
isAllNull
-
isAllNull
-
countMap
-
countMap
-
fieldValueMap
-
fieldValueMap
-
fieldValueAsMap
public static <K,V> Map<K,V> fieldValueAsMap(Iterator<?> iterator, String fieldNameForKey, String fieldNameForValue) 两个字段值组成新的Map- Type Parameters:
K- 字段名对应值得类型,不确定请使用ObjectV- 值类型,不确定使用Object- Parameters:
iterator- 对象列表fieldNameForKey- 做为键的字段名(会通过反射获取其值)fieldNameForValue- 做为值的字段名(会通过反射获取其值)- Returns:
- 某个字段值与对象对应Map
-
fieldValueList
-
fieldValueList
-
join
以 conjunction 为分隔符将集合转换为字符串- Type Parameters:
T- 集合元素类型- Parameters:
iterable-Iterableconjunction- 分隔符- Returns:
- 连接后的字符串
-
join
-
join
- Type Parameters:
T- 集合元素类型- Parameters:
iterator- 集合conjunction- 分隔符- Returns:
- 连接后的字符串
-
join
public static <T> String join(Iterator<T> iterator, CharSequence conjunction, String prefix, String suffix) - Type Parameters:
T- 集合元素类型- Parameters:
iterator- 集合conjunction- 分隔符prefix- 每个元素添加的前缀,null表示不添加suffix- 每个元素添加的后缀,null表示不添加- Returns:
- 连接后的字符串
-
join
public static <T> String join(Iterator<T> iterator, CharSequence conjunction, Function<T, ? extends CharSequence> func) - Type Parameters:
T- 集合元素类型- Parameters:
iterator- 集合conjunction- 分隔符func- 集合元素转换器,将元素转换为字符串- Returns:
- 连接后的字符串
-
toMap
-
toMap
-
toMap
-
toMap
-
toMap
-
toListMap
-
toListMap
-
toListMap
public static <T,K, Map<K,V> List<V>> toListMap(Map<K, List<V>> resultMap, Iterable<T> iterable, Function<T, K> keyMapper, Function<T, V> valueMapper) 将列表转成值为List的HashMap- Type Parameters:
T- 列表值类型K- 键类型V- 值类型- Parameters:
resultMap- 结果Map,可自定义结果Map类型iterable- 值列表keyMapper- Map的键映射valueMapper- Map中List的值映射- Returns:
- HashMap
-
toMap
-
toMap
-
toMap
public static <T,K, Map<K,V> V> toMap(Map<K, V> resultMap, Iterable<T> iterable, Function<T, K> keyMapper, Function<T, V> valueMapper) 将列表转成Map- Type Parameters:
T- 列表值类型K- 键类型V- 值类型- Parameters:
resultMap- 结果Map,通过传入map对象决定结果的Map类型iterable- 值列表keyMapper- Map的键映射valueMapper- Map的值映射- Returns:
- HashMap
-
toList
-
toList
-
asIterator
Enumeration转换为IteratorAdapt the specified
Enumerationto theIteratorinterface- Type Parameters:
E- 集合元素类型- Parameters:
e-Enumeration- Returns:
Iterator
-
asIterable
-
getFirst
-
getFirst
-
getFirstNoneNull
-
getFirstNoneNull
-
getFirst
-
getElementType
-
getElementType
-
filter
过滤集合,此方法在原集合上直接修改 通过实现Filter接口,完成元素的过滤,这个Filter实现可以实现以下功能:过滤出需要的对象,
Predicate.test(Object)方法 返回false的对象将被使用Iterator.remove()方法移除- Type Parameters:
T- 集合类型E- 集合元素类型- Parameters:
iterable- 集合filter- 过滤器接口- Returns:
- 编辑后的集合
-
filter
过滤集合,此方法在原集合上直接修改 通过实现Filter接口,完成元素的过滤,这个Filter实现可以实现以下功能:过滤出需要的对象,
Predicate.test(Object)方法 返回false的对象将被使用Iterator.remove()方法移除- Type Parameters:
E- 集合元素类型- Parameters:
iterator- 集合filter- 过滤器接口,删除Predicate.test(Object)为false的元素- Returns:
- 编辑后的集合
-
filterToList
-
filtered
public static <E> FilterIterator<E> filtered(Iterator<? extends E> iterator, Predicate<? super E> filter) 获取一个新的FilterIterator,用于过滤指定元素- Type Parameters:
E- 元素类型- Parameters:
iterator- 被包装的Iteratorfilter- 过滤断言,当Predicate.test(Object)为true时保留元素,false抛弃元素- Returns:
FilterIterator
-
toMap
-
toMap
public static <K,V, Map<K,E> V> toMap(Iterator<E> iterator, Map<K, V> map, XFunction<E, K> keyFunc, XFunction<E, V> valueFunc) 集合转换为Map,转换规则为: 按照keyFunc函数规则根据元素对象生成Key,按照valueFunc函数规则根据元素对象生成value组成新的Map- Type Parameters:
K- Map键类型V- Map值类型E- 元素类型- Parameters:
iterator- 数据列表map- Map对象,转换后的键值对加入此Map,通过传入此对象自定义Map类型keyFunc- 生成key的函数valueFunc- 生成值的策略函数- Returns:
- 生成的map
-
empty
返回一个空Iterator- Type Parameters:
T- 元素类型- Returns:
- 空Iterator
- See Also:
-
size
返回 Iterable 对象的元素数量- Parameters:
iterable- Iterable对象- Returns:
- Iterable对象的元素数量
-
size
返回 Iterator 对象的元素数量- Parameters:
iterator- Iterator对象- Returns:
- Iterator对象的元素数量
-
clear
清空指定Iterator,此方法遍历后调用Iterator.remove()移除每个元素- Parameters:
iterator-Iterator
-
forEach
-
toString
-
toString
-
toString
-
get
-
get
-
get
从给定的对象中获取可能存在的Iterator,规则如下:- null - null
- Iterator - 直接返回
- Enumeration -
EnumerationIterator - Collection - 调用
Collection.iterator() - Map - Entry的
Iterator - Dictionary - values (elements) enumeration returned as iterator
- array -
ArrayIterator - NodeList -
NodeListIterator - Node - 子节点
- object with iterator() public method,通过反射访问
- object - 单对象的
ArrayIterator
-