| Constructor and Description |
|---|
IterUtil() |
| Modifier and Type | Method and Description |
|---|---|
static <E> Iterable<E> |
asIterable(Iterator<E> iter)
|
static <E> Iterator<E> |
asIterator(Enumeration<E> e)
Enumeration转换为Iterator
Adapt the specified
Enumeration to the Iterator interface |
static void |
clear(Iterator<?> iterator)
清空指定
Iterator,此方法遍历后调用Iterator.remove()移除每个元素 |
static <T> Map<T,Integer> |
countMap(Iterator<T> iter)
|
static <T> List<T> |
edit(Iterator<T> iter,
UnaryOperator<T> editor)
编辑,此方法产生一个新
ArrayList编辑过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能: 1、过滤出需要的对象,如果返回null表示这个元素对象抛弃 2、修改元素对象,返回集合中为修改后的对象 |
static <T> Iterator<T> |
empty()
返回一个空Iterator
|
static boolean |
equals(Iterable<?> iterable1,
Iterable<?> iterable2,
boolean ignoreOrder)
判断两个
Iterable中的元素是否相同,可选是否判断顺序
当满足下列情况时返回true:
两个Iterable都为null;
两个Iterable满足iterable1 == iterable2;
如果忽略顺序,则计算两个集合中元素和数量是否相同
如果不忽略顺序,两个Iterable所有具有相同下标的元素皆满足Objects.equals(Object, Object);
|
static <K,V> Map<K,V> |
fieldValueAsMap(Iterator<?> iter,
String fieldNameForKey,
String fieldNameForValue)
两个字段值组成新的Map
|
static <V,R> List<R> |
fieldValueList(Iterable<V> iterable,
String fieldName)
获取指定Bean列表中某个字段,生成新的列表
|
static <V,R> List<R> |
fieldValueList(Iterator<V> iter,
String fieldName)
获取指定Bean列表中某个字段,生成新的列表
|
static <K,V> Map<K,V> |
fieldValueMap(Iterator<V> iter,
String fieldName)
字段值与列表值对应的Map,常用于元素对象中有唯一ID时需要按照这个ID查找对象的情况
例如:车牌号 =》车 |
static <E> FilterIter<E> |
filtered(Iterator<? extends E> iterator,
Predicate<? super E> predicate)
获取一个新的
FilterIter,用于过滤指定元素 |
static <E> List<E> |
filterToList(Iterator<E> iter,
Predicate<E> predicate)
过滤
Iterator并将过滤后满足条件的元素添加到List中 |
static <E> void |
forEach(Iterator<E> iterator,
Consumer<? super E> consumer)
|
static <E> E |
get(Iterator<E> iterator,
int index)
遍历
Iterator,获取指定index位置的元素 |
static Class<?> |
getElementType(Iterable<?> iterable)
获得
Iterable对象的元素类型(通过第一个非空元素判断)注意,此方法至少会调用多次next方法 |
static Class<?> |
getElementType(Iterator<?> iterator)
获得
Iterator对象的元素类型(通过第一个非空元素判断)注意,此方法至少会调用多次next方法 |
static <T> T |
getFirst(Iterator<T> iterator)
获取集合的第一个元素
|
static <T> T |
getFirst(Iterator<T> iterator,
Predicate<T> predicate)
返回
Iterator中第一个匹配规则的值 |
static <T> T |
getFirstNoneNull(Iterator<T> iterator)
获取集合的第一个非空元素
|
static <T> Iterator<T> |
getIter(Iterable<T> iterable)
获取
Iterator |
static Iterator<?> |
getIter(Object obj)
从给定的对象中获取可能存在的
Iterator,规则如下:
null - null
Iterator - 直接返回
Enumeration - EnumerationIter
Collection - 调用Collection.iterator()
Map - Entry的Iterator
Dictionary - values (elements) enumeration returned as iterator
array - ArrayIter
NodeList - NodeListIter
Node - 子节点
object with iterator() public method,通过反射访问
object - 单对象的ArrayIter
|
static boolean |
hasBlank(Iterable<? extends CharSequence> strs)
指定字符串集合中,是否包含空字符串。
|
static boolean |
hasNull(Iterator<?> iter)
是否包含
null元素Iterator为 null,返回true
Iterator为空集合,即元素个数为0,返回false
Iterator中元素为"",返回false
|
static <T> void |
indexForEach(Iterator<T> iterator,
SerBiConsumer<Integer,T> consumer)
循环遍历
Iterator,使用SerBiConsumer 接受遍历的每条数据,并针对每条数据做处理,支持index |
static boolean |
isAllBlank(Iterable<? extends CharSequence> strs) |
static boolean |
isAllNull(Iterable<?> iter)
是否全部元素为null
|
static boolean |
isAllNull(Iterator<?> iter)
是否全部元素为null
|
static boolean |
isEmpty(Iterable<?> iterable)
Iterable是否为空
|
static boolean |
isEmpty(Iterator<?> iterator)
Iterator是否为空
|
static boolean |
isEqualList(Iterable<?> iterable1,
Iterable<?> iterable2)
判断两个
Iterable中的元素与其顺序是否相同 当满足下列情况时返回 true:
两个Iterable都为null;
两个Iterable满足iterable1 == iterable2;
两个Iterable所有具有相同下标的元素皆满足Objects.equals(Object, Object);
此方法来自Apache-Commons-Collections4。 |
static boolean |
isNotEmpty(Iterable<?> iterable)
Iterable是否为空
|
static boolean |
isNotEmpty(Iterator<?> iterator)
Iterator是否为空
|
static boolean |
isSub(Iterable<?> subIter,
Iterable<?> iter)
判断subIter是否为iter的子集合,不考虑顺序,只考虑元素数量。
|
static <T> String |
join(Iterator<T> iterator,
CharSequence conjunction)
|
static <T> String |
join(Iterator<T> iterator,
CharSequence conjunction,
Function<T,? extends CharSequence> func)
|
static <T> String |
join(Iterator<T> iterator,
CharSequence conjunction,
String prefix,
String suffix)
|
static <E> Iterator<E> |
remove(Iterator<E> iter,
Predicate<E> predicate)
移除集合中满足条件的所有元素,此方法在原集合上直接修改
通过实现 Predicate接口,完成元素的移除,可以实现以下功能:
1、移除指定对象,Predicate.test(Object)方法返回 true的对象将被使用Iterator.remove()方法移除。 |
static int |
size(Iterable<?> iterable)
返回 Iterable 对象的元素数量
|
static int |
size(Iterator<?> iterator)
返回 Iterator 对象的元素数量
|
static <T,K,V> Map<K,List<V>> |
toListMap(Iterable<T> iterable,
Function<T,K> keyMapper,
Function<T,V> valueMapper)
将列表转成值为List的HashMap
|
static <K,V> Map<K,List<V>> |
toListMap(Iterable<V> iterable,
Function<V,K> keyMapper)
将列表转成值为List的HashMap
|
static <T,K,V> Map<K,List<V>> |
toListMap(Map<K,List<V>> resultMap,
Iterable<T> iterable,
Function<T,K> keyMapper,
Function<T,V> valueMapper)
将列表转成值为List的Map集合
|
static <K,V> Map<K,V> |
toMap(Iterable<K> keys,
Iterable<V> values)
将键列表和值列表转换为Map
以键为准,值与键位置需对应。 |
static <K,V> Map<K,V> |
toMap(Iterable<K> keys,
Iterable<V> values,
boolean isOrder)
将键列表和值列表转换为Map
以键为准,值与键位置需对应。 |
static <T,K,V> Map<K,V> |
toMap(Iterable<T> iterable,
Function<T,K> keyMapper,
Function<T,V> valueMapper)
将列表转成HashMap
|
static <K,V> Map<K,V> |
toMap(Iterable<V> iterable,
Function<V,K> keyMapper)
将列表转成HashMap
|
static <K,V> Map<K,V> |
toMap(Iterator<K> keys,
Iterator<V> values)
将键列表和值列表转换为Map
以键为准,值与键位置需对应。 |
static <K,V> Map<K,V> |
toMap(Iterator<K> keys,
Iterator<V> values,
boolean isOrder)
将键列表和值列表转换为Map
以键为准,值与键位置需对应。 |
static <E> String |
toStr(Iterator<E> iterator)
拼接
Iterator为字符串 |
static <E> String |
toStr(Iterator<E> iterator,
Function<? super E,String> transFunc)
拼接
Iterator为字符串 |
static <E> String |
toStr(Iterator<E> iterator,
Function<? super E,String> transFunc,
String delimiter,
String prefix,
String suffix)
拼接
Iterator为字符串 |
static <F,T> Iterator<T> |
trans(Iterator<F> iterator,
Function<? super F,? extends T> function)
|
public static boolean isEmpty(Iterable<?> iterable)
iterable - Iterable对象public static boolean isEmpty(Iterator<?> iterator)
iterator - Iterator对象public static boolean isNotEmpty(Iterable<?> iterable)
iterable - Iterable对象public static boolean isNotEmpty(Iterator<?> iterator)
iterator - Iterator对象public static boolean hasNull(Iterator<?> iter)
null元素null,返回truefalsefalseiter - 被检查的Iterator对象,如果为null 返回truenull元素public static boolean isAllNull(Iterable<?> iter)
iter - iter 被检查的Iterable对象,如果为null 返回truepublic static boolean isAllNull(Iterator<?> iter)
iter - iter 被检查的Iterator对象,如果为null 返回truepublic static boolean hasBlank(Iterable<? extends CharSequence> strs)
strs - 字符串列表public static boolean isAllBlank(Iterable<? extends CharSequence> strs)
strs - 字符串列表public static <K,V> Map<K,V> fieldValueMap(Iterator<V> iter, String fieldName)
K - 字段名对应值得类型,不确定请使用ObjectV - 对象类型iter - 对象列表fieldName - 字段名(会通过反射获取其值)public static <K,V> Map<K,V> fieldValueAsMap(Iterator<?> iter, String fieldNameForKey, String fieldNameForValue)
K - 字段名对应值得类型,不确定请使用ObjectV - 值类型,不确定使用Objectiter - 对象列表fieldNameForKey - 做为键的字段名(会通过反射获取其值)fieldNameForValue - 做为值的字段名(会通过反射获取其值)public static <V,R> List<R> fieldValueList(Iterable<V> iterable, String fieldName)
R - 返回元素类型V - 对象类型iterable - 对象列表fieldName - 字段名(会通过反射获取其值)public static <V,R> List<R> fieldValueList(Iterator<V> iter, String fieldName)
R - 返回元素类型V - 对象类型iter - 对象列表fieldName - 字段名(会通过反射获取其值)public static <T> String join(Iterator<T> iterator, CharSequence conjunction)
T - 集合元素类型iterator - 集合conjunction - 分隔符public static <T> String join(Iterator<T> iterator, CharSequence conjunction, String prefix, String suffix)
T - 集合元素类型iterator - 集合conjunction - 分隔符prefix - 每个元素添加的前缀,null表示不添加suffix - 每个元素添加的后缀,null表示不添加public static <T> String join(Iterator<T> iterator, CharSequence conjunction, Function<T,? extends CharSequence> func)
T - 集合元素类型iterator - 集合conjunction - 分隔符func - 集合元素转换器,将元素转换为字符串public static <K,V> Map<K,V> toMap(Iterable<K> keys, Iterable<V> values)
K - 键类型V - 值类型keys - 键列表values - 值列表public static <K,V> Map<K,V> toMap(Iterable<K> keys, Iterable<V> values, boolean isOrder)
K - 键类型V - 值类型keys - 键列表values - 值列表isOrder - 是否有序public static <K,V> Map<K,V> toMap(Iterator<K> keys, Iterator<V> values)
K - 键类型V - 值类型keys - 键列表values - 值列表public static <K,V> Map<K,V> toMap(Iterator<K> keys, Iterator<V> values, boolean isOrder)
K - 键类型V - 值类型keys - 键列表values - 值列表isOrder - 是否有序public static <K,V> Map<K,List<V>> toListMap(Iterable<V> iterable, Function<V,K> keyMapper)
K - 键类型V - 值类型iterable - 值列表keyMapper - Map的键映射public static <T,K,V> Map<K,List<V>> toListMap(Iterable<T> iterable, Function<T,K> keyMapper, Function<T,V> valueMapper)
T - 列表值类型K - 键类型V - 值类型iterable - 值列表keyMapper - Map的键映射valueMapper - Map中List的值映射public static <T,K,V> Map<K,List<V>> toListMap(Map<K,List<V>> resultMap, Iterable<T> iterable, Function<T,K> keyMapper, Function<T,V> valueMapper)
T - 列表值类型K - 键类型V - 值类型resultMap - 结果Map,可自定义结果Map类型iterable - 值列表keyMapper - Map的键映射valueMapper - Map中List的值映射public static <K,V> Map<K,V> toMap(Iterable<V> iterable, Function<V,K> keyMapper)
K - 键类型V - 值类型iterable - 值列表keyMapper - Map的键映射public static <T,K,V> Map<K,V> toMap(Iterable<T> iterable, Function<T,K> keyMapper, Function<T,V> valueMapper)
T - 列表值类型K - 键类型V - 值类型iterable - 值列表keyMapper - Map的键映射valueMapper - Map的值映射public static <E> Iterator<E> asIterator(Enumeration<E> e)
Adapt the specified Enumeration to the Iterator interface
E - 集合元素类型e - EnumerationIteratorpublic static <E> E get(Iterator<E> iterator, int index) throws IndexOutOfBoundsException
Iterator,获取指定index位置的元素E - 元素类型iterator - Iteratorindex - 位置nullIndexOutOfBoundsException - index < 0时报错public static <T> T getFirst(Iterator<T> iterator)
T - 集合元素类型iterator - Iteratorpublic static <T> T getFirstNoneNull(Iterator<T> iterator)
T - 集合元素类型iterator - Iteratorpublic static <T> T getFirst(Iterator<T> iterator, Predicate<T> predicate)
Iterator中第一个匹配规则的值public static Class<?> getElementType(Iterable<?> iterable)
Iterable对象的元素类型(通过第一个非空元素判断)iterable - Iterablepublic static Class<?> getElementType(Iterator<?> iterator)
Iterator对象的元素类型(通过第一个非空元素判断)iterator - Iterator,为 null返回nullnull时,返回nullpublic static <T> List<T> edit(Iterator<T> iter, UnaryOperator<T> editor)
ArrayList1、过滤出需要的对象,如果返回null表示这个元素对象抛弃 2、修改元素对象,返回集合中为修改后的对象
T - 集合元素类型iter - 集合editor - 编辑器接口, null表示不编辑public static <E> Iterator<E> remove(Iterator<E> iter, Predicate<E> predicate)
Predicate接口,完成元素的移除,可以实现以下功能:
1、移除指定对象,Predicate.test(Object)方法返回true的对象将被使用Iterator.remove()方法移除。
E - 集合元素类型iter - 集合predicate - 过滤器接口,删除Predicate.test(Object)为true的元素public static <E> List<E> filterToList(Iterator<E> iter, Predicate<E> predicate)
Iterator并将过滤后满足条件的元素添加到List中E - 元素类型iter - Iteratorpredicate - 过滤器,Predicate.test(Object)为true保留public static <E> FilterIter<E> filtered(Iterator<? extends E> iterator, Predicate<? super E> predicate)
FilterIter,用于过滤指定元素E - 元素类型iterator - 被包装的 Iteratorpredicate - 过滤断言,Predicate.test(Object)为true保留元素。FilterIterpublic static <T> Iterator<T> empty()
T - 元素类型Collections.emptyIterator()public static <F,T> Iterator<T> trans(Iterator<F> iterator, Function<? super F,? extends T> function)
public static int size(Iterable<?> iterable)
iterable - Iterable对象public static int size(Iterator<?> iterator)
iterator - Iterator对象public static boolean isSub(Iterable<?> subIter, Iterable<?> iter)
subIter - 第一个Iterable对象,即子集合。iter - 第二个Iterable对象,可以为任何实现了Iterable接口的集合。public static boolean isEqualList(Iterable<?> iterable1, Iterable<?> iterable2)
判断两个Iterable中的元素与其顺序是否相同
当满足下列情况时返回true:
Iterable都为null;Iterable满足iterable1 == iterable2;Iterable所有具有相同下标的元素皆满足Objects.equals(Object, Object);iterable1 - 列表1iterable2 - 列表2public static boolean equals(Iterable<?> iterable1, Iterable<?> iterable2, boolean ignoreOrder)
Iterable中的元素是否相同,可选是否判断顺序
当满足下列情况时返回true:
Iterable都为null;Iterable满足iterable1 == iterable2;Iterable所有具有相同下标的元素皆满足Objects.equals(Object, Object);iterable1 - 集合1iterable2 - 集合2ignoreOrder - 是否忽略顺序public static void clear(Iterator<?> iterator)
Iterator,此方法遍历后调用Iterator.remove()移除每个元素iterator - Iteratorpublic static <E> void forEach(Iterator<E> iterator, Consumer<? super E> consumer)
E - 元素类型iterator - Iteratorconsumer - 节点消费,null表示不处理public static <T> void indexForEach(Iterator<T> iterator, SerBiConsumer<Integer,T> consumer)
Iterator,使用SerBiConsumer 接受遍历的每条数据,并针对每条数据做处理,支持indexT - 集合元素类型iterator - Iteratorconsumer - SerBiConsumer 遍历的每条数据处理器public static <E> String toStr(Iterator<E> iterator)
Iterator为字符串E - 元素类型iterator - Iteratorpublic static <E> String toStr(Iterator<E> iterator, Function<? super E,String> transFunc)
Iterator为字符串E - 元素类型iterator - IteratortransFunc - 元素转字符串函数public static <E> String toStr(Iterator<E> iterator, Function<? super E,String> transFunc, String delimiter, String prefix, String suffix)
Iterator为字符串E - 元素类型iterator - IteratortransFunc - 元素转字符串函数delimiter - 分隔符prefix - 前缀suffix - 后缀public static Iterator<?> getIter(Object obj)
Iterator,规则如下:
EnumerationIterCollection.iterator()IteratorArrayIterNodeListIterArrayIterCopyright © 2025. All rights reserved.